Introduction to Zora
Zora is a powerful and versatile JavaScript testing framework designed to be minimalistic, fast, and easy to use. It provides a wide range of APIs to help developers create comprehensive test suites for their applications. In this guide, we will introduce Zora’s core features and demonstrate numerous API examples with code snippets. Additionally, we will provide an app example that leverages the discussed APIs.
Zora API Examples
1. Simple Test
const { test } = require('zora');
test('my first test', t => {
t.equal(1 + 1, 2, '1 + 1 should equal 2');
});
2. Grouping Tests
const { test } = require('zora');
test('math', t => {
t.test('addition', t => {
t.equal(1 + 1, 2, '1 + 1 should equal 2');
t.equal(2 + 2, 4, '2 + 2 should equal 4');
});
t.test('multiplication', t => {
t.equal(2 * 2, 4, '2 * 2 should equal 4');
});
});
3. Asynchronous Testing
const { test } = require('zora');
test('async test', async t => {
const result = await Promise.resolve(1 + 1);
t.equal(result, 2, 'result should be 2');
});
4. Skipping Tests
const { test } = require('zora');
test('math', t => {
t.skip('not implemented', t => {
// this test will be skipped
t.equal(1 + 1, 2, '1 + 1 should equal 2');
});
});
5. With Context
const { test } = require('zora');
test('context', t => {
t.equal(t.context, undefined, 'context should be undefined by default');
});
test('with context', { someData: true }, t => {
t.equal(t.context.someData, true, 'context.someData should be true');
});
App Example Using Zora
To provide a practical example of using Zora, let’s create a simple Node.js application and write tests for it using Zora’s APIs.
1. Create `app.js`
// app.js
module.exports = {
add: (a, b) => a + b,
multiply: (a, b) => a * b
};
2. Create `test.js`
const { test } = require('zora');
const { add, multiply } = require('./app');
test('addition', t => {
t.equal(add(1, 2), 3, '1 + 2 should equal 3');
t.equal(add(-1, -1), -2, '-1 + -1 should equal -2');
});
test('multiplication', t => {
t.equal(multiply(2, 3), 6, '2 * 3 should equal 6');
t.equal(multiply(0, 10), 0, '0 * 10 should equal 0');
});
Hash: 1fc148378903a6bb31270127289d272ef49d83b401c6fe9b8737e1b42885d08d