# Options

## name

The name of the test.

## meta

The `meta` option is required and needs to be set to `import.meta`. This is
required for executing the snapshot tests.

## fn

Test function that executes your test code. A snapshot is taken of the `stdout`
and `stderr` outputs of this function and stored in the snapshot file.

## args

Script arguments injected into the test function. Read them with `Deno.args` as
you normally would. Can be set at the top level or on individual steps. (see
[Script arguments](./index.md#script-arguments))

## stdin

Data injected into `Deno.stdin`. Read it from `Deno.stdin` as you normally would
when reading from stdin. Useful for snapshotting prompts. Can be set at the top
level or on individual steps. (see [Stdin](./index.md#stdin))

## steps

With the `steps` option you can add multiple steps to the test function. The
`snapshotTest` method then calls the test function once for each step within a
separate test step by calling `t.step()` from the test context. Each step can
have separate options for `stdin`, `args`, and `env`. (see
[Test steps](./index.md#test-steps))

## denoArgs

Arguments passed to the `deno test` command when executing the snapshot tests.
Use this to grant your CLI the permissions it needs at runtime (e.g.
`--allow-read`, `--allow-env`). `--allow-env=SNAPSHOT_TEST_NAME` is always added
on top of whatever you pass. Adding `--quiet` keeps Deno's own output out of the
snapshot.

## dir

Snapshot output directory. Snapshot files will be written to this directory.
This can be relative to the test directory or an absolute path.

If both `dir` and `path` are specified, the `dir` option will be ignored and the
`path` option will be handled as normal.

## path

Snapshot output path. The snapshot will be written to this file. This can be a
path relative to the test directory or an absolute path.

If both `dir` and `path` are specified, the `dir` option will be ignored and the
`path` option will be handled as normal.

## osSuffix

Operating system snapshot suffix. This is useful when your test produces
different output on different operating systems. `osSuffix` is an array of
`typeof Deno.build.os`.

## colors

Enable/disable colors. Default is `true`.

## timeout

Timeout in milliseconds to wait until the input stream data is buffered before
writing the next data to the stream. This ensures that each user input is
rendered as separate line in the snapshot file. If your test gets flaky, try to
increase the timeout. The default timeout is `600`.

## env

Environment variables to inject into the test process. Can be set at the
top-level test options or on individual steps. (see
[Test steps](./index.md#test-steps))

## ignore

If truthy the current test step will be ignored.

It is a quick way to skip over a step, but also can be used for conditional
logic, like determining if an environment feature is present.

## only

If at least one test has `only` set to `true`, only run tests that have `only`
set to `true` and fail the test suite.

The `only` option can be set at the top level or on individual steps inside the
`steps` object. When set on a step, only that step runs and the others are
skipped (the test suite is still marked as failing due to the `only` filter).
(see [Test steps](./index.md#test-steps))
