flash-runner v0.0.53
Readme
Test runner that caches your database connection or any of your expensive computation between tests runs.
Since you can use jest's expect library, i.e, expect. The tests remains same and should work with the change of connectToDb function to fix the database connection.
Motivation
Jest's test runner has no capability to share values and module between tests suites in watch mode. Issue closed here. But it seems that work is going on this issue here.
Features
- Watch mode + Hot-reloading of server
- No need to stop and restart server when you update
config.fr.jsfile - Generate config file via:
npx flash-runner genornpx flash-runner generatefrom command line
Usage
Cli
# Installation
npm i flash-runner
# Add below scripts to `package.json` and utilise those script
"scripts": {
"test": "fr test1.test.js",
"test-watch": "fr -w test1.test.js"
},
# -w is alias for --watchSample test:
// file: test1.test.js
const {expect} = require('expect')
const {test} = global
// Connect to db if you want
// connectToDb(async () => { })
const sum = (a, b) => {
return a + b
}
test('sum function', async () => {
const received = sum(1, 2)
const expected = 3
expect(received).toBe(expected)
})NOTE: connectToDb is intended to make a cache of database connection as you can see the way I have used in many reference projects section.
Running tests:
- watch mode:
npm run test-watch - run it once (for ci-cd build test pipeline):
npm test
Reference projects that use flash-runner
- nextjs-api-testing-mongoosejs-with-flash
- api-testing-typescript-with-flash
- nextjs-api-testing-with-flash
- Full Project Example: fso-part13
- mongo-driver-with-flash-runner
- express-mongo-with-flash-runner
- sequelize-with-flash-runner
- mongoosejs-with-flash-runner
- LearningRedis
Beginners with testing? Some commonly used assertions
// All below expectation will be PASSED
expect(10).toBe(10)
expect({name: 'dan', age: '22'}).toHaveProperty('name')
expect({name: 'roy', age: 10}).toMatchObject({name: 'roy'})
expect([1, 21, 31]).toContain(1, 21)Other notes:
- FYI: Always use
express-async-errorswhile testing a express app coz it will helps directly toflash-runnerand standaloneserverrunning in prevention of crashing (in case of some error thrown). This is helpful inflash-runneras the server doesn't crash on failure/exception thrown by one route and thus watching service keeps running as well. Yikes!Flash-runner+express-async-errorsrocks!
Todo
- Implement
test.skipfunctionality like jest.
Develop without publishing to npm
# In this directory
npm link
# In target directory where you want to use flash-runner
npm link flash-runner3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago