@tapjs/fixture
Tap plugin to provide t.testdir() and t.fixture()
Last updated 8 months ago by isaacs .
BlueOak-1.0.0 · Repository · Bugs · Original npm · Tarball · package.json
$ npm install @tapjs/fixture 
SYNC missed versions from official npm registry.

@tapjs/fixture

A default tap plugin providing t.testdir() and t.fixture() methods, for creating temporary directories with stuff for tests to operate on.

Fixtures created with this plugin live folders under ./.tap/fixtures, in the root of the project. The folder name is based on the name of the test file, and the name of the test.

For example, if a file at ./src/foo.test.mjs had this:

import t from 'tap'
t.test('child test', async t => {
  t.testdir({ file: 'contents' })
})

Then a file would be created at .tap/fixtures/src-foo.test.mjs-child-test/file containing 'contents'.

USAGE

This plugin is installed with tap by default. If you had previously removed it, you can tap plugin add @tapjs/fixture to bring it back.

t.testdir(contents?: FixtureDirContent): string

Create a directory with some stuff in it.

If no contents provided, just creates an empty directory.

import t from 'tap'
import { lstatSync } from 'node:fs'

t.test('subtest that has a test directory', t => {
  const dir = t.testdir({
    // objects are subdirectories
    subdir: {
      // strings or buffers are files
      'file.txt': 'some contents',
      // to create links or symlinks, use the t.fixture() method
      symlink: t.fixture('symlink', 'file.txt'),
      hardlink: t.fixture('link', 'file.txt'),
    },
  })
  t.equal(lstatSync(dir + '/subdir/symlink').isSymbolicLink(), true)
  t.end()
})
// dir removed when test ends

If you do not provide a contents argument, then it will create an empty directory.

Though it's called t.testdir() you can actually use it to create files or links as well.

import t from 'tap'
import { readFileSync } from 'node:fs'
t.test('test "dir" is actually file', t => {
  const file = t.testdir('file contents')
  t.equal(readFileSync(file, 'utf8'), 'file contents')
  t.end()
})

t.testdirName: string

This is a string that gives you the string path that t.testdir() will write to.

saveFixture test option, t.saveFixture: boolean

If set to true, then the test will not delete its fixtures when it finishes.

If set on the test object, this must be set before calling t.testdir(), or it won't have any effect, since the deletion is scheduled at the moment it's created.

Current Tags

  • 4.0.0                                ...           latest (4 months ago)
  • 1.0.0                                ...           pre (a year ago)

67 Versions

  • 4.0.0                                ...           4 months ago
  • 3.0.3                                ...           5 months ago
  • 3.0.2                                ...           5 months ago
  • 3.0.1                                ...           5 months ago
  • 3.0.0                                ...           5 months ago
  • 2.0.8                                ...           5 months ago
  • 2.0.7                                ...           5 months ago
  • 2.0.6                                ...           5 months ago
  • 2.0.5                                ...           5 months ago
  • 2.0.4                                ...           5 months ago
  • 2.0.3                                ...           5 months ago
  • 2.0.2                                ...           5 months ago
  • 2.0.1                                ...           6 months ago
  • 2.0.0                                ...           6 months ago
  • 1.2.22                                ...           6 months ago
  • 1.2.21                                ...           6 months ago
  • 1.2.20                                ...           8 months ago
  • 1.2.19                                ...           8 months ago
  • 1.2.18                                ...           10 months ago
  • 1.2.17                                ...           a year ago
  • 1.2.16                                ...           a year ago
  • 1.2.15                                ...           a year ago
  • 1.2.14                                ...           a year ago
  • 1.2.13                                ...           a year ago
  • 1.2.12                                ...           a year ago
  • 1.2.11                                ...           a year ago
  • 1.2.10                                ...           a year ago
  • 1.2.9                                ...           a year ago
  • 1.2.8                                ...           a year ago
  • 1.2.7                                ...           a year ago
  • 1.2.6                                ...           a year ago
  • 1.2.5                                ...           a year ago
  • 1.2.4                                ...           a year ago
  • 1.2.3                                ...           a year ago
  • 1.2.2                                ...           a year ago
  • 1.2.1                                ...           a year ago
  • 1.2.0                                ...           a year ago
  • 1.1.0                                ...           a year ago
  • 1.0.6                                ...           a year ago
  • 1.0.5                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
  • 0.0.0-22                                ...           a year ago
  • 0.0.0-21                                ...           a year ago
  • 0.0.0-20                                ...           a year ago
  • 0.0.0-19                                ...           a year ago
  • 0.0.0-18                                ...           a year ago
  • 0.0.0-17                                ...           a year ago
  • 0.0.0-16                                ...           a year ago
  • 0.0.0-15                                ...           a year ago
  • 0.0.0-14                                ...           a year ago
  • 0.0.0-13                                ...           a year ago
  • 0.0.0-12                                ...           a year ago
  • 0.0.0-11                                ...           a year ago
  • 0.0.0-10                                ...           a year ago
  • 0.0.0-9                                ...           a year ago
  • 0.0.0-8                                ...           a year ago
  • 0.0.0-7                                ...           a year ago
  • 0.0.0-6                                ...           a year ago
  • 0.0.0-5                                ...           a year ago
  • 0.0.0-4                                ...           a year ago
  • 0.0.0-3                                ...           a year ago
  • 0.0.0-2                                ...           a year ago
  • 0.0.0-1                                ...           a year ago
Maintainers (2)
Downloads
Total 2
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (0)
None
Dependents (2)

© 2010 - cnpmjs.org x YWFE | Home | YWFE