1.9.8 • Published 2 years ago

@guanghechen/jest-helper v1.9.8

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

A collection of utility functions for jest tests.

Install

  • npm

    npm install --save-dev @guanghechen/jest-helper
  • yarn

    yarn add --dev @guanghechen/jest-helper

Usage

Desensitizers

  • StringDesensitizer: (text: string, key?: string) => string

    • composeStringDesensitizers: Compose multiple desensitizers into one.

      function composeStringDesensitizers(
        ...desensitizers: ReadonlyArray<StringDesensitizer>
      ): StringDesensitizer
    • createFilepathDesensitizer: Create a StringDesensitizer to eliminate sensitive filepath data (Replace matched filepath with the replaceString).

      export function createFilepathDesensitizer(
        baseDir: string,
        replaceString = '<WORKSPACE>',
      ): StringDesensitizer
    • createPackageVersionDesensitizer: Create a StringDesensitizer to eliminate volatile package versions.

      function createPackageVersionDesensitizer(
        nextVersion: (packageVersion: string, packageName: string) => string,
        testPackageName?: (packageName: string) => boolean,
      ): StringDesensitizer
      • nextVersion: Determine the new version of the given {packageName} package.

        • @param packageVersion: packageVersion (without prefix)
        • @param packageName: packageName /([\^><~]=?)?/)
        • @returns:
      • testPackageName: Test if the version should be change of the {packageName} package.

        • @param packageName:
  • JsonDesensitizer: (json: unknown, key?: string) => unknown

    • createJsonDesensitizer: Create a desensitizer to eliminate sensitive json data.

      createJsonDesensitizer(
        valDesensitizers: {
          string?: StringDesensitizer
          number?: NumberDesensitizer
          fallback?: Desensitizer<unknown>
        },
        keyDesensitizer?: StringDesensitizer,
      ): JsonDesensitizer
      • valDesensitizers: Desensitizers for values of object / array or literal string and number

        • string: Desensitize number type value of object / array or literal string.
        • number: Desensitize number type value of object / array or literal number.
        • number: Desensitize other type value of object / array or other literal primitive values.
      • keyDesensitizer: Desensitizer for keys of object

snapshots

  • fileSnapshot: Create snapshot for give filepaths.

    fileSnapshot(
      baseDir: string,
      filenames: string[],
      desensitize?: StringDesensitizer,
      encoding: BufferEncoding = 'utf-8',
    ): void

mocks

  • createConsoleMock: Create mock funcs on console

    export function createConsoleMock(
      methodNames?: ReadonlyArray<'debug' | 'log' | 'info' | 'warn' | 'error'> =
        ['debug', 'log', 'info', 'warn', 'error'],
      desensitize?: (args: unknown[]) => unknown[]
    ): ConsoleMock

    Example:

    const mock = createConsoleMock()
    
    console.debug('debug waw1')
    console.log('log waw2')
    expect(mock.get('debug')).toEqual([['debug waw1']])
    expect(mock.get('log')).toEqual([['log waw2']])
    expect(mock.getIndiscriminateAll()).toEqual([['debug waw1'], ['log waw2']])
    
    mock.reset()
    console.info('info waw3')
    console.error('error waw4')
    expect(mock.get('info')).toEqual([['info waw3']])
    expect(mock.get('error')).toEqual([['error waw4']])
    expect(mock.getIndiscriminateAll()).toEqual([['info waw3'], ['error waw4']])
    
    mock.restore()

Related

1.9.8

2 years ago

1.9.7

2 years ago

1.9.6

2 years ago

1.9.5

2 years ago

1.9.0-alpha.0

2 years ago

1.9.1

2 years ago

1.9.0

2 years ago

1.8.6

2 years ago

1.9.4

2 years ago

1.9.3

2 years ago

1.9.2

2 years ago

1.8.5

2 years ago

1.8.4

3 years ago

1.8.3

3 years ago

1.8.2

3 years ago

1.8.1

3 years ago

1.8.0

3 years ago

1.7.1

3 years ago

1.7.0

3 years ago

1.7.0-alpha.3

3 years ago

1.7.0-alpha.1

3 years ago

1.7.0-alpha.2

3 years ago

1.7.0-alpha.0

3 years ago

1.6.1

3 years ago

1.6.0

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago