mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
* Add unit test coverage
* Add tests to util/richHistory
* Remove unused import
* Remove redundant tests
* Fix tests for components
* Test saving to local storage
* Add boxshadow to container
* Revert "Add boxshadow to container"
This reverts commit 5ca2e850e4
.
169 lines
4.7 KiB
TypeScript
169 lines
4.7 KiB
TypeScript
import {
|
|
addToRichHistory,
|
|
updateStarredInRichHistory,
|
|
updateCommentInRichHistory,
|
|
mapNumbertoTimeInSlider,
|
|
createDateStringFromTs,
|
|
createQueryHeading,
|
|
createDataQuery,
|
|
deleteAllFromRichHistory,
|
|
} from './richHistory';
|
|
import store from 'app/core/store';
|
|
import { SortOrder } from './explore';
|
|
|
|
const mock: any = {
|
|
history: [
|
|
{
|
|
comment: '',
|
|
datasourceId: 'datasource historyId',
|
|
datasourceName: 'datasource history name',
|
|
queries: ['query1', 'query2'],
|
|
sessionName: '',
|
|
starred: true,
|
|
ts: 1,
|
|
},
|
|
],
|
|
comment: '',
|
|
datasourceId: 'datasourceId',
|
|
datasourceName: 'datasourceName',
|
|
queries: ['query3'],
|
|
sessionName: '',
|
|
starred: false,
|
|
};
|
|
|
|
const key = 'grafana.explore.richHistory';
|
|
|
|
describe('addToRichHistory', () => {
|
|
beforeEach(() => {
|
|
deleteAllFromRichHistory();
|
|
expect(store.exists(key)).toBeFalsy();
|
|
});
|
|
|
|
const expectedResult = [
|
|
{
|
|
comment: mock.comment,
|
|
datasourceId: mock.datasourceId,
|
|
datasourceName: mock.datasourceName,
|
|
queries: mock.queries,
|
|
sessionName: mock.sessionName,
|
|
starred: mock.starred,
|
|
ts: 2,
|
|
},
|
|
mock.history[0],
|
|
];
|
|
|
|
it('should append query to query history', () => {
|
|
Date.now = jest.fn(() => 2);
|
|
const newHistory = addToRichHistory(
|
|
mock.history,
|
|
mock.datasourceId,
|
|
mock.datasourceName,
|
|
mock.queries,
|
|
mock.starred,
|
|
mock.comment,
|
|
mock.sessionName
|
|
);
|
|
expect(newHistory).toEqual(expectedResult);
|
|
});
|
|
|
|
it('should save query history to localStorage', () => {
|
|
Date.now = jest.fn(() => 2);
|
|
|
|
addToRichHistory(
|
|
mock.history,
|
|
mock.datasourceId,
|
|
mock.datasourceName,
|
|
mock.queries,
|
|
mock.starred,
|
|
mock.comment,
|
|
mock.sessionName
|
|
);
|
|
expect(store.exists(key)).toBeTruthy();
|
|
expect(store.getObject(key)).toMatchObject(expectedResult);
|
|
});
|
|
|
|
it('should not append duplicated query to query history', () => {
|
|
Date.now = jest.fn(() => 2);
|
|
const newHistory = addToRichHistory(
|
|
mock.history,
|
|
mock.history[0].datasourceId,
|
|
mock.history[0].datasourceName,
|
|
mock.history[0].queries,
|
|
mock.starred,
|
|
mock.comment,
|
|
mock.sessionName
|
|
);
|
|
expect(newHistory).toEqual([mock.history[0]]);
|
|
});
|
|
|
|
it('should not save duplicated query to localStorage', () => {
|
|
Date.now = jest.fn(() => 2);
|
|
addToRichHistory(
|
|
mock.history,
|
|
mock.history[0].datasourceId,
|
|
mock.history[0].datasourceName,
|
|
mock.history[0].queries,
|
|
mock.starred,
|
|
mock.comment,
|
|
mock.sessionName
|
|
);
|
|
expect(store.exists(key)).toBeFalsy();
|
|
});
|
|
});
|
|
|
|
describe('updateStarredInRichHistory', () => {
|
|
it('should update starred in query in history', () => {
|
|
const updatedStarred = updateStarredInRichHistory(mock.history, 1);
|
|
expect(updatedStarred[0].starred).toEqual(false);
|
|
});
|
|
it('should update starred in localStorage', () => {
|
|
updateStarredInRichHistory(mock.history, 1);
|
|
expect(store.exists(key)).toBeTruthy();
|
|
expect(store.getObject(key)[0].starred).toEqual(false);
|
|
});
|
|
});
|
|
|
|
describe('updateCommentInRichHistory', () => {
|
|
it('should update comment in query in history', () => {
|
|
const updatedComment = updateCommentInRichHistory(mock.history, 1, 'new comment');
|
|
expect(updatedComment[0].comment).toEqual('new comment');
|
|
});
|
|
it('should update comment in localStorage', () => {
|
|
updateCommentInRichHistory(mock.history, 1, 'new comment');
|
|
expect(store.exists(key)).toBeTruthy();
|
|
expect(store.getObject(key)[0].comment).toEqual('new comment');
|
|
});
|
|
});
|
|
|
|
describe('mapNumbertoTimeInSlider', () => {
|
|
it('should correctly map number to value', () => {
|
|
const value = mapNumbertoTimeInSlider(25);
|
|
expect(value).toEqual('25 days ago');
|
|
});
|
|
});
|
|
|
|
describe('createDateStringFromTs', () => {
|
|
it('should correctly create string value from timestamp', () => {
|
|
const value = createDateStringFromTs(1583932327000);
|
|
expect(value).toEqual('March 11');
|
|
});
|
|
});
|
|
|
|
describe('createQueryHeading', () => {
|
|
it('should correctly create heading for queries when sort order is ascending ', () => {
|
|
const heading = createQueryHeading(mock.history[0], SortOrder.Ascending);
|
|
expect(heading).toEqual('January 1');
|
|
});
|
|
it('should correctly create heading for queries when sort order is datasourceAZ ', () => {
|
|
const heading = createQueryHeading(mock.history[0], SortOrder.DatasourceAZ);
|
|
expect(heading).toEqual(mock.history[0].datasourceName);
|
|
});
|
|
});
|
|
|
|
describe('createDataQuery', () => {
|
|
it('should correctly create data query from rich history query', () => {
|
|
const dataQuery = createDataQuery(mock.history[0], mock.queries[0], 0);
|
|
expect(dataQuery).toEqual({ datasource: 'datasource history name', expr: 'query3', refId: 'A' });
|
|
});
|
|
});
|