Skip to content

[clojure] test snippet triggered when typing -test for the deftest name #438

@practicalli-johnny

Description

@practicalli-johnny

A very common convention in Clojure.test is to name unit tests ending in -test, which unfortunately can trigger yasnippet expansion

Reproduction of issue

Enable Yasnippets with this repository as a source of snippets

Type test and call yas-expand to generate a deftest form with the cursor placed on the deftest name as it matches the test snippet.

Type the test name, i.e. addition-test and press TAB to go to the next tab stop

Rather than jumping to the next tab stop, the test part of the deftest name is expanded into a deftest form, creating a second defttest form within the first.

If a space is typed after the deftest -test name then TAB does not expand to another deftest form.

Suggested options

  1. Rename the test snippet to deftest or other name that will not expand from -test
  2. Update test snippet to postfix -test to the name automatically (see deftest example below)
  3. Hope everyone remembers to press space after the -test name, before pressing TAB

Additional point

The (testing ,,,) form is typically used within a deftest to organise assertions, (is ,,,) expressions, into logical groups. This supports more specific test reports when tests fail.
Consider adding testing to a snippet that generated a deftest, for example

(deftest ${1:name}-test
  (testing "${2:Context of the test assertions}"$>
    (is (= ${3:assertion-values}))$4))$>
$0

Tab stop 2 and 3 text will be substituted when visiting that tab stop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    seenPR was seen and initial feedback was given

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions