@tapjs/fixture
Advanced tools
Comparing version 0.0.0-15 to 0.0.0-16
@@ -28,2 +28,11 @@ import { TapPlugin, TestBase } from '@tapjs/core'; | ||
/** | ||
* Set whether the fixture should be saved or not | ||
* | ||
* Must be set *BEFORE* calling | ||
* {@link @tapjs/fixture!index.TestFixtures#testdir}, or it will not have any | ||
* effect. | ||
*/ | ||
set saveFixture(save: boolean); | ||
get saveFixture(): boolean; | ||
/** | ||
* Create a test directory, optionally filling it up with contents | ||
@@ -30,0 +39,0 @@ * |
@@ -52,2 +52,15 @@ "use strict"; | ||
/** | ||
* Set whether the fixture should be saved or not | ||
* | ||
* Must be set *BEFORE* calling | ||
* {@link @tapjs/fixture!index.TestFixtures#testdir}, or it will not have any | ||
* effect. | ||
*/ | ||
set saveFixture(save) { | ||
this.#saveFixture = save; | ||
} | ||
get saveFixture() { | ||
return this.#saveFixture; | ||
} | ||
/** | ||
* Create a test directory, optionally filling it up with contents | ||
@@ -54,0 +67,0 @@ * |
@@ -28,2 +28,11 @@ import { TapPlugin, TestBase } from '@tapjs/core'; | ||
/** | ||
* Set whether the fixture should be saved or not | ||
* | ||
* Must be set *BEFORE* calling | ||
* {@link @tapjs/fixture!index.TestFixtures#testdir}, or it will not have any | ||
* effect. | ||
*/ | ||
set saveFixture(save: boolean); | ||
get saveFixture(): boolean; | ||
/** | ||
* Create a test directory, optionally filling it up with contents | ||
@@ -30,0 +39,0 @@ * |
@@ -35,2 +35,15 @@ // module code goes here | ||
/** | ||
* Set whether the fixture should be saved or not | ||
* | ||
* Must be set *BEFORE* calling | ||
* {@link @tapjs/fixture!index.TestFixtures#testdir}, or it will not have any | ||
* effect. | ||
*/ | ||
set saveFixture(save) { | ||
this.#saveFixture = save; | ||
} | ||
get saveFixture() { | ||
return this.#saveFixture; | ||
} | ||
/** | ||
* Create a test directory, optionally filling it up with contents | ||
@@ -37,0 +50,0 @@ * |
{ | ||
"name": "@tapjs/fixture", | ||
"version": "0.0.0-15", | ||
"version": "0.0.0-16", | ||
"description": "Tap plugin to provide t.testdir() and t.fixture()", | ||
@@ -40,3 +40,3 @@ "author": "Isaac Z. Schlueter <i@izs.me> (https://blog.izs.me)", | ||
"peerDependencies": { | ||
"@tapjs/core": "0.0.0-15" | ||
"@tapjs/core": "0.0.0-16" | ||
}, | ||
@@ -48,3 +48,3 @@ "dependencies": { | ||
"engines": { | ||
"node": ">=14" | ||
"node": ">=16" | ||
}, | ||
@@ -51,0 +51,0 @@ "funding": { |
# `@tapjs/fixture` | ||
Tap plugin providing `t.testdir()` and `t.fixture()` methods, for | ||
creating temporary directories with stuff for tests to operate | ||
on. | ||
A default tap plugin providing `t.testdir()` and `t.fixture()` | ||
methods, for creating temporary directories with stuff for tests | ||
to operate on. | ||
## 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. | ||
```ts | ||
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. | ||
```ts | ||
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. |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
66262
725
69