is there some recommended way of having two different implementations for the same key? in my case it's to do different things in testing.
having conditionals in init-key is what comes to mind but i find that ugly
You could use different source-paths
for tests, and inside you could replace implementation.
Like
├── dev
│ └── src
│ ├── dev.clj
│ ├── local.clj
│ ├── foobar
│ │ └── external
│ │ └── service.clj
│ └── user.clj
├── project.clj
└── src
└── foobar
├── external
│ └── service.clj
└── main.clj
The example uses dev
but it doesn't matter.
That's one of options how to do this.
It works but I’d like to keep the option of running tests from the repl. Now I’m redef-ing the multimethod instead.
AFAIK it shouldn't interfere with running tests from the repl, but it might be not very explicit