pub struct Settings { /* private fields */ }
Expand description

Configures how insta operates at test time.

Settings are always bound to a thread and some default settings are always available. These settings can be changed and influence how insta behaves on that thread. They can either temporarily or permanently changed.

This can be used to influence how the snapshot macros operate. For instance it can be useful to force ordering of maps when unordered structures are used through settings.

Some of the settings can be changed but shouldn’t as it will make it harder for tools like cargo-insta or an editor integration to locate the snapshot files.

Settings can also be configured with the with_settings! macro.

Example:

use insta;

let mut settings = insta::Settings::clone_current();
settings.set_sort_maps(true);
settings.bind(|| {
    // runs the assertion with the changed settings enabled
    insta::assert_snapshot!(...);
});

Implementations

Returns the default settings.

It’s recommended to use clone_current instead so that already applied modifications are not discarded.

Returns a copy of the current settings.

Enables forceful sorting of maps before serialization.

Note that this only applies to snapshots that undergo serialization (eg: does not work for assert_debug_snapshot!.)

The default value is false.

Returns the current value for map sorting.

Disables prepending of modules to the snapshot filename.

By default the filename of a snapshot is <module>__<name>.snap. Setting this flag to false changes the snapshot filename to just <name>.snap.

The default value is true.

Returns the current value for module name prepending.

Allows the glob! macro to succeed if it matches no files.

By default the glob macro will fail the test if it does not find any files to prevent accidental typos. This can be disabled when fixtures should be conditional.

The default value is false.

Returns the current value for the empty glob setting.

Sets the snapshot suffix.

The snapshot suffix is added to all snapshot names with an @ sign between. For instance if the snapshot suffix is set to "foo" and the snapshot would be named "snapshot" it turns into "snapshot@foo". This is useful to separate snapshots if you want to use test parameterization.

Removes the snapshot suffix.

Returns the current snapshot suffix.

Sets the input file reference.

This value is completely unused by the snapshot testing system but it lets you store some meta data with a snapshot that refers you back to the input file. The path stored here is made relative to the workspace root before storing with the snapshot.

Removes the input file reference.

Returns the current input file reference.

Registers redactions that should be applied.

This can be useful if redactions must be shared across multiple snapshots.

Note that this only applies to snapshots that undergo serialization (eg: does not work for assert_debug_snapshot!.)

Registers a replacement callback.

This works similar to a redaction but instead of changing the value it asserts the value at a certain place. This function is internally supposed to call things like assert_eq!.

This is a shortcut to add_redaction(selector, dynamic_redaction(...));

A special redaction that sorts a sequence or map.

This is a shortcut to add_redaction(selector, sorted_redaction()).

Replaces the currently set redactions.

The default set is empty.

Removes all redactions.

Sets the snapshot path.

If not absolute it’s relative to where the test is in.

Defaults to snapshots.

Returns the snapshot path.

Runs a function with the current settings bound to the thread.

Like bind but for futures.

This lets you bind settings for the duration of a future like this:

let settings = Settings::new();
settings.bind_async(async {
    // do assertions here
}).await;

Binds the settings to the current thread permanently.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.