Socket
Book a DemoInstallSign in
Socket

vitest-launchdarkly-mock

Package Overview
Dependencies
Maintainers
1
Versions
21
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vitest-launchdarkly-mock

Easily unit test LaunchDarkly feature flagged components with Vitest

latest
Source
npmnpm
Version
1.2.3
Version published
Maintainers
1
Created
Source

vitest-launchdarkly-mock

npm version npm downloads License PRs Welcome

Star on GitHub

Easily unit test LaunchDarkly feature flagged components with Vitest :clap:

This package is a rip-off from jest-launchdarkly-mock, just adapted for Vitest.

This package is only compatible with React SDK.

Installation

yarn add -D vitest-launchdarkly-mock

or

npm install vitest-launchdarkly-mock --save-dev

Then in vite.config.js add vitest-launchdarkly-mock to setupFiles:

// vite.config.ts

export default defineConfig(() => {
    return {
        test: {
            setupFiles: ['./node_modules/vitest-launchdarkly-mock/dist/index.js'],
        }
    }
});

Usage

Use the only 3 apis for test cases:

  • mockFlags(flags: LDFlagSet): mock flags at the start of each test case. Only mocks flags returned by the useFlags hook.

  • ldClientMock: a Vitest mock of the ldClient. All methods of this object are Vitest mocks.

  • resetLDMocks : resets both mockFlags and ldClientMock.

Example

import { mockFlags, ldClientMock, resetLDMocks } from 'vitest-launchdarkly-mock'

describe('button', () => {
  beforeEach(() => {
    // reset before each test case
    resetLDMocks()
  })

  test('flag on', () => {
      // arrange
      // You can use the original unchanged case, kebab-case, camelCase or snake_case keys.
      mockFlags({ devTestFlag: true })

      // act
      const { getByTestId } = render(<Button />)

      // assert
      expect(getByTestId('test-button')).toBeTruthy()
    })

  test('identify', () => {
    // arrange
    mockFlags({ 'dev-test-flag': true })

    // act
    const { getByTestId } = render(<Button />)
    fireEvent.click(getByTestId('test-button'))

    // assert: identify gets called
    expect(ldClientMock.identify).toBeCalledWith({ key: 'aa0ceb' })
  })
})

Keywords

vitest

FAQs

Package last updated on 30 Apr 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts