UNPKG

@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
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