snapshot

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2021 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultUpdate bool

DefaultUpdate option

Functions

func AssertEqualBytes added in v0.3.0

func AssertEqualBytes(t *testing.T, expected, actual []byte)

AssertEqualBytes compare each byte

func AssertEqualJSON added in v0.3.0

func AssertEqualJSON(t *testing.T, expected, actual []byte)

AssertEqualJSON compare value as json, output more human friendly error for json.

func IsNonWord added in v0.5.1

func IsNonWord(c rune) bool

IsNonWord return true when rune not in [0-9a-zA-Z].

func MapFromStruct added in v0.3.0

func MapFromStruct(v interface{}) (ret map[string]interface{})

MapFromStruct convert struct to map. returns nil if input value is not a struct.

func MapOmit added in v0.3.0

func MapOmit(v map[string]interface{}, keys ...string) map[string]interface{}

MapOmit delete given keys from map.

func MarshalTextOrJSON added in v0.3.0

func MarshalTextOrJSON(v interface{}) ([]byte, error)

MarshalTextOrJSON marshal json if value not text.

func MaskAsAsterisk added in v0.5.1

func MaskAsAsterisk(v []byte) []byte

MaskAsAsterisk treat data as string and replace all characters to `*`.

func MaskString added in v0.5.1

func MaskString(v string, as rune, keep func(c rune) bool) string

MaskString replace all runes that not keep to given rune.

func MaskWordAsAsterisk added in v0.6.0

func MaskWordAsAsterisk(v []byte) []byte

MaskWordAsAsterisk treat data as string and replace all word characters to `*`.

func Match

func Match(t *testing.T, actual interface{}, opts ...Option)

Match compare object with file store under __snapshots__ folder

func MatchJSON

func MatchJSON(t *testing.T, actual interface{}, opts ...Option)

MatchJSON compare snapshot in json format

func ResetDefaults added in v0.3.0

func ResetDefaults()

ResetDefaults to initial values.

func TransformJSON added in v0.3.0

func TransformJSON(v interface{}) interface{}

TransformJSON convert go object to json friendly data format. like mongo-compass used to edit document, types that json not support will be wrapped as { "$"+type: value }.

func TransformSchema added in v0.3.0

func TransformSchema(v interface{}) interface{}

TransformSchema that only keep type info. Useful when handling dynamic data like timestamp.

Returns:

nil
  when value is nil

$[]byte
  when value is byte slice

$[length]byte
  when value is byte array

{"$array": interface{}}
  when value is slice or array
  and all element schema is deep equal.

[]interface{}
  when value is slice or array

{"$pointer": value }
  when value is potinter

{"$"+type: map[string]interace{}}
  when value is struct and has any exported fields.

map[string]interace{}
  when value is map

"$"+type
  default

Types

type AssertEqual added in v0.3.0

type AssertEqual = func(t *testing.T, expected, actual []byte)

AssertEqual fails test if snapshot not equal with actual value.

var DefaultAssertEqual AssertEqual

DefaultAssertEqual option

type Clean added in v0.5.1

type Clean = func(v []byte) []byte

Clean data before compare.

func CleanAs added in v0.5.1

func CleanAs(as string) Clean

CleanAs convert any data to given string.

func CleanRegex added in v0.5.1

func CleanRegex(pattern regexp.Regexp, clean Clean) Clean

CleanRegex clean all data matched by given regexp. If regexp has group, clean function called on all submatch, otherwise, it called on match.

func CleanString added in v0.5.1

func CleanString(fn func(v string) string) Clean

CleanString by a function that takes string as argument

type Marshal added in v0.3.0

type Marshal = func(value interface{}) ([]byte, error)

Marshal go object to bytes

var DefaultMarshal Marshal

DefaultMarshal option

type Option

type Option func(*Options)

Option mutate SnapshotOptions

func OptionAssertEqual added in v0.3.0

func OptionAssertEqual(assertEqual AssertEqual) Option

OptionAssertEqual do assert

func OptionClean added in v0.5.1

func OptionClean(clean ...Clean) Option

OptionClean dynamic data to make result deterministic. multiple clean option take affect in order.

func OptionCleanRegex added in v0.5.1

func OptionCleanRegex(clean Clean, patterns ...string) Option

OptionCleanRegex replace all patten match by clean function, panic if any pattern is invalid.

func OptionCleanRegexMask added in v0.5.1

func OptionCleanRegexMask(patterns ...string) Option

OptionCleanRegexMask mask word matched by patterns to '*', panic if any pattern is invalid.

func OptionExt

func OptionExt(ext string) Option

OptionExt used as file extention

func OptionKey

func OptionKey(key string) Option

OptionKey used in filename

func OptionMarshal

func OptionMarshal(marshal func(interface{}) ([]byte, error)) Option

OptionMarshal object to bytes.

func OptionSkip

func OptionSkip(skip int) Option

OptionSkip add caller skip

func OptionTransform

func OptionTransform(transform func(interface{}) interface{}) Option

OptionTransform object before marshal.

func OptionUpdate

func OptionUpdate(v bool) Option

OptionUpdate is whether ignore existed file.

type Options

type Options struct {
	// contains filtered or unexported fields
}

Options for snapshot match

type Transform added in v0.3.0

type Transform = func(value interface{}) interface{}

Transform data before marshal transform may reuse input object.

var DefaultTransform Transform

DefaultTransform option

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL