Skip to content

Request for feedback: Thoughts on a native rule-testing framework? #1122

Closed

Description

@jdkato

As I'm sure all of you know, it's not possible to maintain a significant Vale configuration without devising some way to test individual rules.

I'd like to improve this experience by supporting it natively.

Here's what I'm thinking:

Schema — a YAML list of test cases:

Key Type Default Meaning
description string '' Free text, not asserted on
input string '' Document to lint (inline or a fixture file)
format string md Parsed as md/rst/html/…
expect string[] — Exact, ordered list of alert lines the rule must produce
match bool true Shorthand: must fire (true) or stay silent (false)

expect and match are mutually exclusive; expect wins if both are set.
Defaults are omitted on write.

- description: flags a weasel word
  input: |
    We really need this.
  expect:
    - 1:4:write-good.Weasel:warning:'really' is a weasel word!

- description: plain prose stays silent
  input: We need this.
  match: false

One question is, does this get associated with a config file or written inside of a single rule?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions