Skip to content

Test fixture does not reload system state when running tests interactively #148

@positron

Description

@positron

I expected this workflow to work:

  1. Run a test in my text editor (aka using REPL) using the fixture kit-clj generated (use-fixtures :once (<my-ns>.test-utils/system-fixture)) - it fails
  2. Change some api route config or code
  3. Re-run the test and see behavior changed

Especially surprising to me because I was changing the code in the :handler but even that didn't get updated, because the built reitit API stuff was referencing the old version of that fn. :)

I don't think this should be intended behavior. IMHO using a test fixture implies that it is coming up with repeatable, fresh new state every time the fixture is called. To underscore that difference, with this setup there is no difference between :each or :once.

Anyway, if this is not intended behavior, it is because of this code:

https://github.com/kit-clj/kit/blob/master/libs/deps-template/resources/io/github/kit_clj/kit/test/clj/test_utils.clj#L12-L16

I changed mine to always call core/start-app.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions