grafana/public/app/features/api-keys/state/selectors.test.ts
Josh Hunt 3c6e0e8ef8
Chore: ESlint import order (#44959)
* Add and configure eslint-plugin-import

* Fix the lint:ts npm command

* Autofix + prettier all the files

* Manually fix remaining files

* Move jquery code in jest-setup to external file to safely reorder imports

* Resolve issue caused by circular dependencies within Prometheus

* Update .betterer.results

* Fix missing // @ts-ignore

* ignore iconBundle.ts

* Fix missing // @ts-ignore
2022-04-22 14:33:13 +01:00

143 lines
4.4 KiB
TypeScript

import { ApiKeysState } from 'app/types';
import { getMultipleMockKeys } from '../__mocks__/apiKeysMock';
import { getApiKeys, getApiKeysCount, getIncludeExpired, getIncludeExpiredDisabled } from './selectors';
describe('API Keys selectors', () => {
const mockKeys = getMultipleMockKeys(5);
const mockKeysIncludingExpired = getMultipleMockKeys(8);
describe('getApiKeysCount', () => {
it('returns the correct count when includeExpired is false', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: false,
};
const keyCount = getApiKeysCount(mockState);
expect(keyCount).toBe(5);
});
it('returns the correct count when includeExpired is true', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: true,
};
const keyCount = getApiKeysCount(mockState);
expect(keyCount).toBe(8);
});
});
describe('getApiKeys', () => {
describe('when includeExpired is false', () => {
it('should return all keys if no search query', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: false,
};
const keys = getApiKeys(mockState);
expect(keys).toEqual(mockKeys);
});
it('should filter keys if search query exists', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '5',
hasFetched: true,
includeExpired: false,
};
const keys = getApiKeys(mockState);
expect(keys.length).toEqual(1);
});
});
describe('when includeExpired is true', () => {
it('should return all keys if no search query', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: true,
};
const keys = getApiKeys(mockState);
expect(keys).toEqual(mockKeysIncludingExpired);
});
it('should filter keys if search query exists', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '5',
hasFetched: true,
includeExpired: true,
};
const keys = getApiKeys(mockState);
expect(keys.length).toEqual(1);
});
});
});
describe('getIncludeExpired', () => {
it('returns true if includeExpired is true', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: true,
};
const includeExpired = getIncludeExpired(mockState);
expect(includeExpired).toBe(true);
});
it('returns false if includeExpired is false', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: false,
};
const includeExpired = getIncludeExpired(mockState);
expect(includeExpired).toBe(false);
});
});
describe('getIncludeExpiredDisabled', () => {
it('returns true if there are no active keys but there are expired keys', () => {
const mockState: ApiKeysState = {
keys: [],
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: true,
};
const includeExpiredDisabled = getIncludeExpiredDisabled(mockState);
expect(includeExpiredDisabled).toBe(true);
});
it('returns false otherwise', () => {
const mockState: ApiKeysState = {
keys: mockKeys,
keysIncludingExpired: mockKeysIncludingExpired,
searchQuery: '',
hasFetched: true,
includeExpired: false,
};
const includeExpiredDisabled = getIncludeExpired(mockState);
expect(includeExpiredDisabled).toBe(false);
});
});
});