{"id":15714574,"url":"https://github.com/launchdarkly/jest-launchdarkly-mock","last_synced_at":"2025-04-04T16:12:30.842Z","repository":{"id":39678583,"uuid":"297767176","full_name":"launchdarkly/jest-launchdarkly-mock","owner":"launchdarkly","description":"Easily unit test LaunchDarkly feature flagged components with jest","archived":false,"fork":false,"pushed_at":"2025-03-20T21:48:51.000Z","size":233032,"stargazers_count":26,"open_issues_count":8,"forks_count":20,"subscribers_count":32,"default_branch":"main","last_synced_at":"2025-03-28T15:04:37.657Z","etag":null,"topics":["feature","feature-flags","feature-toggles","flags","jest","launchdarkly","mock","test","unit"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/launchdarkly.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-22T20:41:49.000Z","updated_at":"2025-03-20T21:48:53.000Z","dependencies_parsed_at":"2023-10-11T22:29:22.664Z","dependency_job_id":"148bc4b1-0a31-4b3c-bbe1-b65987207aec","html_url":"https://github.com/launchdarkly/jest-launchdarkly-mock","commit_stats":{"total_commits":145,"total_committers":17,"mean_commits":8.529411764705882,"dds":0.4896551724137931,"last_synced_commit":"ffee07401c08dc652997ad5be19f403b3e221f21"},"previous_names":["launchdarkly-labs/jest-launchdarkly-mock"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchdarkly%2Fjest-launchdarkly-mock","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchdarkly%2Fjest-launchdarkly-mock/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchdarkly%2Fjest-launchdarkly-mock/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/launchdarkly%2Fjest-launchdarkly-mock/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/launchdarkly","download_url":"https://codeload.github.com/launchdarkly/jest-launchdarkly-mock/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208142,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["feature","feature-flags","feature-toggles","flags","jest","launchdarkly","mock","test","unit"],"created_at":"2024-10-03T21:38:31.732Z","updated_at":"2025-04-04T16:12:30.826Z","avatar_url":"https://github.com/launchdarkly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jest-launchdarkly-mock\n\n[![npm version](https://img.shields.io/npm/v/jest-launchdarkly-mock.svg)](https://www.npmjs.com/package/jest-launchdarkly-mock) \n[![npm downloads](https://img.shields.io/npm/dm/jest-launchdarkly-mock.svg)](https://www.npmjs.com/package/jest-launchdarkly-mock)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com/)\n\n[![Star on GitHub](https://img.shields.io/github/stars/launchdarkly/jest-launchdarkly-mock?style=social)](https://github.com/launchdarkly/jest-launchdarkly-mock/stargazers)\n[![Tweet](https://img.shields.io/twitter/url/https/github.com/launchdarkly/jest-launchdarkly-mock.svg?style=social)](https://twitter.com/intent/tweet?text=Check%20out%20jest-launchdarkly-mock%20by%20%40launchdarkly%20https%3A%2F%2Fgithub.com%2Flaunchdarkly%2Fjest-launchdarkly-mock%20%F0%9F%91%8D)\n\n\u003e **Easily unit test LaunchDarkly feature flagged components with jest** :clap:\n\nThis package is only compatible with the react sdk.\n\n## Installation\n\n```bash\nyarn add -D jest-launchdarkly-mock\n```\n\nor\n\n```bash\nnpm install jest-launchdarkly-mock --save-dev\n```\n\nThen in `jest.config.js` add jest-launchdarkly-mock to setupFiles: \n\n```js\n// jest.config.js\nmodule.exports = {\n  setupFiles: ['jest-launchdarkly-mock'],\n}\n```\n\n## Usage\nUse the only 3 apis for test cases:\n\n* `mockFlags(flags: LDFlagSet)`: mock flags at the start of each test case. Only mocks\nflags returned by the `useFlags` hook.\n\n* `ldClientMock`: a jest mock of the [ldClient](https://launchdarkly.github.io/js-client-sdk/interfaces/_launchdarkly_js_client_sdk_.ldclient.html). All\nmethods of this object are jest mocks.\n\n* `resetLDMocks` : resets both mockFlags and ldClientMock.\n\n## Example\n```tsx\nimport { mockFlags, ldClientMock, resetLDMocks } from 'jest-launchdarkly-mock'\n\ndescribe('button', () =\u003e {\n  beforeEach(() =\u003e {\n    // reset before each test case\n    resetLDMocks()\n  })\n\n  test('flag on', () =\u003e {\n      // arrange\n      // You can use the original unchanged case, kebab-case, camelCase or snake_case keys.\n      mockFlags({ devTestFlag: true })\n  \n      // act\n      const { getByTestId } = render(\u003cButton /\u003e)\n\n      // assert\n      expect(getByTestId('test-button')).toBeTruthy()\n    })\n\n  test('identify', () =\u003e {\n    // arrange\n    mockFlags({ 'dev-test-flag': true })\n    \n    // act\n    const { getByTestId } = render(\u003cButton /\u003e)\n    fireEvent.click(getByTestId('test-button'))\n\n    // assert: identify gets called\n    expect(ldClientMock.identify).toBeCalledWith({ key: 'aa0ceb' })\n  })\n})\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchdarkly%2Fjest-launchdarkly-mock","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaunchdarkly%2Fjest-launchdarkly-mock","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaunchdarkly%2Fjest-launchdarkly-mock/lists"}