Skip to content

About

Generate Node.js unit tests from fixtures and callbacks.

Resources

Stars

0 stars

Watchers

6 watching

Forks

Repository files navigation

Generate Node.js unit tests from fixtures and callbacks NPM Version

Provides test callbacks with Fixura's functions to fetch test fixtures.

Workflow status

Branch Workflow status
main Workflow status badge for branch main
test Workflow status badge for branch test

Usage

The test fixture directory is parsed as follows: Each subdirectory becomes a unit test group (node:test's describe) and inner subdirectories each represent individual tests (node:test's it). For custom test variables see metadata example.

import generateTests from '@natlibfi/fixugen';
import {dirname} from 'node:path';
import {fileURLToPath} from 'node:url';

const __dirname = dirname(fileURLToPath(import.meta.url));

generateTests({
  callback,
  path: [__dirname, '..', 'test-fixtures']
});

function callback({getFixture, custom}) {
  const expectedValue = getFixture('value.txt');
  const value = generateSomething(custom);
  expect(value).to.equal(expectedValue);
}

Options

  • callback: A callback function passed to node:test's it. Receives Fixura's function as arguments.
    • dirName: callback gets dirName variable that is one folder up
  • path: An array of path components which make up a path to the test fixtures directory
  • recurse: Whether to recurse into the subdirectories of path. If false the last directory of the path is used as the name of the node:test's describe-call and it's direct subdirectories are used as unit test directories. Defaults to true
  • fixura: Options that are passed to Fixura.
  • useMetadataFile: If set to true, reads and parses a file named metadata.json in each unit test directory. The content must be a JSON object and it's properties as passed to the unit test callback function.
    • If a property description is present, it is used as the test's description (Defaults to false and folder name is used).
    • If a property skip is present, it decides if test is skipped (Defaults to false).
    • If a property only is present, it decides if this/these tests are only run (Defaults to false).
  • hooks: An object which maps the following properties to node:test's corresponding callbacks: after, before, afterEach, beforeEach

Example metadata.json

{
  "description": "Example description of test",
  "skip": false,
  "only": false,
  "custom": "Custom variable delivered for test"
}

License and copyright

Copyright (c) 2020, 2023-2026 University Of Helsinki (The National Library Of Finland)

This project's source code is licensed under the terms of MIT or any later version.

About

Generate Node.js unit tests from fixtures and callbacks.

Resources

Stars

0 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages