@universal-packages/core-jest
v1.5.9
Published
Jest tooling for universal core
Readme
Core Jest
Jest tooling for Universal Core testing.
Install
npm install @universal-packages/core-jest
npm install @universal-packages/coreSetup
Add the following to your jest.config.js or where you configure Jest:
module.exports = {
setupFilesAfterEnv: ['@universal-packages/core-jest']
}Jest Global
coreJest.runApp(name: string, [options: Object])
Run an app for all test cases in file and stop it after all tests are done.
coreJest.runApp('web-server')
it('should return the todo list', async () => {
const result = fetch('http://localhost:4000/todos')
expect(result.json()).toEqual({ todos: [] })
})Options
argsObjectArguments to pass to the app.coreConfigOverrideObjectOverride the core config for the run.
coreJest.runBare([options: Object])
Load core modules and let them be available for code that can be tested without running an app or task.
coreJest.runBare()
it('should be able to use global modules', async () => {
const result = await MyService.doSomething()
expect(result).toEqual('something')
})Options
coreConfigOverrideObjectOverride the core config for the run.
coreJest.execTask(name: string, [options: Object])
Runs a task on the spot use this per test case that needs to test what the task did.
it('should do something', async () => {
await coreJest.execTask('maintain', 'deleted-users', ['fast'])
expect(User.deleted().count()).toEqual(0)
})Options
argsObjectArguments to pass to the task.directivestringThe directive to run the task with.directiveOptionsstring[]The directive options to run the task with.coreConfigOverrideObjectOverride the core config for the run.
coreJest.abortTask()
Aborts the task that is currently running.
it('should abort the task', async () => {
coreJest.execTask('maintain', 'deleted-users', ['fast'])
await coreJest.abortTask()
expect(User.deleted().count()).toEqual(1)
})coreJest.runInitializer(name: string, [options: Object])
Runs an initializer on the spot use this per test case that needs to test what the initializer did.
it('should do something', async () => {
await coreJest.runInitializer('library-initializer')
expect(fs.existsSync('file.txt')).toEqual(true)
})Options
argsObjectArguments to pass to the initializer.coreConfigOverrideObjectOverride the core config for the run.locationOverridestringInitializers are fetched from thenode_modulesfolder by default. For testing this is change to the,/srcfolder. Since this is used for library development.
Typescript
In order for typescript to see the global types you need to reference the types somewhere in your project, normally ./src/globals.d.ts.
/// <reference types="@universal-packages/core-jest" />This library is developed in TypeScript and shipped fully typed.
Contributing
The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.
