6.0.0-alpha.2 • Published 5 months ago

@guanghechen/helper-jest v6.0.0-alpha.2

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

A collection of utility functions for jest tests.

Install

  • npm

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

    yarn add --dev @guanghechen/helper-jest

Usage

Desensitizers

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

    • composeStringDesensitizers: Compose multiple desensitizers into one.

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

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

      function createPackageVersionDesensitizer(
        nextVersion: (packageVersion: string, packageName: string) => string,
        testPackageName?: (packageName: string) => boolean,
      ): IStringDesensitizer
      • 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?: IStringDesensitizer
          number?: INumberDesensitizer
          fallback?: IDesensitizer<unknown>
        },
        keyDesensitizer?: IStringDesensitizer,
      ): 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?: IStringDesensitizer,
      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

6.0.0-alpha.2

5 months ago

6.0.0-alpha.1

5 months ago

6.0.0-alpha.0

6 months ago

5.0.9

7 months ago

5.0.8

7 months ago

5.0.7

8 months ago

5.0.6

9 months ago

5.0.5

9 months ago

5.0.4

9 months ago

5.0.3

10 months ago

5.0.2

10 months ago

5.0.0-alpha.3

1 year ago

5.0.0-alpha.2

1 year ago

5.0.1

12 months ago

5.0.0

12 months ago

4.7.2

1 year ago

4.7.1

1 year ago

4.7.4

1 year ago

4.7.3

1 year ago

5.0.0-alpha.1

1 year ago

5.0.0-alpha.0

1 year ago

4.0.0-alpha.7

1 year ago

4.0.0-alpha.8

1 year ago

4.0.0-alpha.5

1 year ago

4.0.0-alpha.6

1 year ago

4.0.0-alpha.3

1 year ago

4.0.0-alpha.4

1 year ago

4.0.0-alpha.1

1 year ago

4.0.0-alpha.2

1 year ago

4.0.0-alpha.0

1 year ago

4.4.1

1 year ago

4.4.0

1 year ago

4.2.2

1 year ago

4.6.1

1 year ago

4.4.3

1 year ago

4.6.0

1 year ago

4.4.2

1 year ago

4.0.0

1 year ago

4.2.1

1 year ago

4.2.0

1 year ago

4.6.3

1 year ago

4.6.2

1 year ago

4.6.5

1 year ago

4.6.4

1 year ago

4.5.0

1 year ago

4.1.3

1 year ago

4.7.0

1 year ago

4.1.0

1 year ago

4.3.0

1 year ago

4.1.2

1 year ago

4.1.1

1 year ago

3.0.2

1 year ago

3.0.1

1 year ago

3.0.0

1 year ago

3.0.0-alpha.1

1 year ago

3.0.0-alpha.0

1 year ago

3.0.0-alpha.3

1 year ago

3.0.0-alpha.2

1 year ago

3.0.0-alpha.5

1 year ago

3.0.0-alpha.4

1 year ago

2.1.2

2 years ago

2.1.1

2 years ago

2.1.4

2 years ago

2.1.3

2 years ago

2.0.0-alpha.3

2 years ago

2.0.0-alpha.2

2 years ago

2.1.0

2 years ago

2.0.0

2 years ago

2.0.0-alpha.1

2 years ago

2.0.0-alpha.0

2 years ago