This moves the Logseq and Raindrop clients to be at arms-reach from the rest of the code, which allows us to unit test our code. While more things directly know about the Logseq client (see the number of function params that now use include the client), they are at arms length from the actual implementation.
This adds a new Moqseq client, allowing us to mock Logseq behaviour in-memory. It's not perfect, but it has a relatively robust test suite to ensure the implementation is as expected. We use this extensively in testing — see the spec files for upsertRaindropPages and emptyState.
This moves the Logseq and Raindrop clients to be at arms-reach from the rest of the code, which allows us to unit test our code. While more things directly know about the Logseq client (see the number of function params that now use include the client), they are at arms length from the actual implementation.
This adds a new Moqseq client, allowing us to mock Logseq behaviour in-memory. It's not perfect, but it has a relatively robust test suite to ensure the implementation is as expected. We use this extensively in testing — see the spec files for upsertRaindropPages and emptyState.