global.ts 864 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* istanbul ignore file */
  2. export const mockFF = () => {
  3. const { APP_SETTINGS = {} } = window;
  4. const originalAppSettings = APP_SETTINGS;
  5. const originalFF = originalAppSettings.feature_flags || {};
  6. const windowMock = {
  7. APP_SETTINGS: {
  8. ...APP_SETTINGS,
  9. feature_flags: {
  10. ...originalFF,
  11. },
  12. },
  13. };
  14. const setup = () => {
  15. // Set up the window mock before running tests
  16. global.window.APP_SETTINGS = windowMock.APP_SETTINGS;
  17. };
  18. const reset = () => {
  19. // Reset the window mock after running tests
  20. global.window.APP_SETTINGS = originalAppSettings;
  21. };
  22. const set = (kv: { [key: string]: boolean }) => {
  23. // Set a feature flag
  24. Object.entries(kv).forEach(([key, value]) => {
  25. global.window.APP_SETTINGS.feature_flags[key] = value;
  26. });
  27. };
  28. return {
  29. setup,
  30. set,
  31. reset,
  32. };
  33. };