Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/ab-connector / dist / state / selectors / selectors.spec.js
Size: Mime:
import { getFirstExperimentId, getFirstGlobalExperimentId } from './index';

describe('selectors', () => {
  describe('getFirstExperimentId', () => {
    it('should return undefined if no mounted experiment is defined for state', () => {
      const state = {};
      const result = getFirstExperimentId(state);

      expect(result).toBeUndefined();
    });

    it('should return undefined, if experiment exist but is not mounted', () => {
      const state = {
        ab: {
          experiments: {
            test: {
              variant: 'a',
              experimentId: 'id',
            },
          },
          mountedExperiments: {},
        },
      };
      const result = getFirstExperimentId(state);

      expect(result).toBeUndefined();
    });

    it('should return the experimentId, if experiment exist and is mounted', () => {
      const experimentId = 'id';
      const state = {
        ab: {
          experiments: {
            test: {
              variant: 'a',
              experimentId,
            },
          },
          mountedExperiments: {
            test: 'a',
          },
        },
      };
      const result = getFirstExperimentId(state, 'test');

      expect(result).toBe(experimentId);
    });
  });

  describe('getFirstGlobalExperimentId', () => {
    it('should return undefined if no mounted experiment is defined for state', () => {
      const state = {};
      const result = getFirstGlobalExperimentId(state);

      expect(result).toBeUndefined();
    });

    it('should return undefined, if experiment exist but is not global', () => {
      const state = {
        ab: {
          experiments: {
            test: {
              variant: 'a',
              experimentId: 'id',
              isGlobal: false,
            },
          },
        },
      };
      const result = getFirstGlobalExperimentId(state);

      expect(result).toBeUndefined();
    });

    it('should return the experimentId, if experiment exist and is global', () => {
      const experimentId = 'id';
      const state = {
        ab: {
          experiments: {
            test: {
              variant: 'a',
              isGlobal: true,
              experimentId,
            },
          },
        },
      };
      const result = getFirstGlobalExperimentId(state, 'test');

      expect(result).toBe(experimentId);
    });
  });
});