@sidequest/backend-test
Version:
@sidequest/backend-test is a test suite for backend implementations of Sidequest, a Node.js library for managing background jobs and distributed queues.
56 lines (53 loc) • 2.31 kB
JavaScript
import { setTestBackend, backend } from './backend.js';
import defineClaimPendingJobTestSuite from './claimPendingJob.js';
import defineCountJobsTestSuite from './countJobs.js';
import defineCountJobsOverTimeTestSuite from './countJobsOverTime.js';
import defineCreateNewJobTestSuite from './createNewJob.js';
import defineInsertQueueConfigTestSuite from './createNewQueue.js';
import defineDeleteFinishedJobsTestSuite from './deleteFinishedJobs.js';
import defineGetJobTestSuite from './getJob.js';
import defineGetQueuesFromJobsTestSuite from './getQueuesFromJobs.js';
import defineListJobsTestSuite from './listJobs.js';
import defineListQueuesTestSuite from './listQueues.js';
import defineStaleJobsTestSuite from './staleJobs.js';
import defineTruncateTestSuite from './truncate.js';
import defineUpdateJobTestSuite from './updateJob.js';
/**
* Sets up and runs a comprehensive test suite for a backend implementation.
*
* This function initializes the backend using the provided configuration and factory,
* and automatically registers a series of standardized test suites to validate
* backend behavior. It also manages backend setup and teardown for each test.
*
* **🚨 ATTENTION 🚨**: This function is intended for use in a testing environment only and with
* testing data. It will truncate the database after every test to ensure a clean state.
* It should not be used in production or with real data.
*
* @param backendFactory - A factory function that creates a backend instance.
*/
function testBackend(backendFactory) {
beforeEach(async () => {
setTestBackend(backendFactory());
await backend.migrate();
await backend.truncate();
});
afterEach(async () => {
await backend.truncate();
await backend.close();
});
defineTruncateTestSuite();
defineClaimPendingJobTestSuite();
defineCreateNewJobTestSuite();
defineDeleteFinishedJobsTestSuite();
defineGetJobTestSuite();
defineGetQueuesFromJobsTestSuite();
defineInsertQueueConfigTestSuite();
defineListQueuesTestSuite();
defineListJobsTestSuite();
defineCountJobsTestSuite();
defineStaleJobsTestSuite();
defineUpdateJobTestSuite();
defineCountJobsOverTimeTestSuite();
}
export { testBackend };
//# sourceMappingURL=index.js.map