| /** |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| import { |
| emptyQueryResults, |
| clearQueryEditors, |
| } from 'src/SqlLab/utils/reduxStateToLocalStorageHelper'; |
| import { LOCALSTORAGE_MAX_QUERY_AGE_MS } from 'src/SqlLab/constants'; |
| import { queries, defaultQueryEditor } from '../fixtures'; |
| |
| describe('reduxStateToLocalStorageHelper', () => { |
| const queriesObj = {}; |
| beforeEach(() => { |
| queries.forEach(q => { |
| queriesObj[q.id] = q; |
| }); |
| }); |
| |
| it('should empty query.results if query.startDttm is > LOCALSTORAGE_MAX_QUERY_AGE_MS', () => { |
| // make sure sample data contains old query |
| const oldQuery = queries[0]; |
| const { id, startDttm } = oldQuery; |
| expect(Date.now() - startDttm).toBeGreaterThan( |
| LOCALSTORAGE_MAX_QUERY_AGE_MS, |
| ); |
| expect(Object.keys(oldQuery.results)).toContain('data'); |
| |
| const emptiedQuery = emptyQueryResults(queriesObj); |
| expect(emptiedQuery[id].startDttm).toBe(startDttm); |
| expect(emptiedQuery[id].results).toEqual({}); |
| }); |
| |
| it('should only return selected keys for query editor', () => { |
| const queryEditors = [defaultQueryEditor]; |
| expect(Object.keys(queryEditors[0])).toContain('schemaOptions'); |
| |
| const clearedQueryEditors = clearQueryEditors(queryEditors); |
| expect(Object.keys(clearedQueryEditors)[0]).not.toContain('schemaOptions'); |
| }); |
| }); |