/** * 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 sinon from 'sinon'; import * as actions from 'src/SqlLab/actions/sqlLab'; import { ColumnKeyTypeType } from 'src/SqlLab/components/ColumnElement'; export const mockedActions = sinon.stub({ ...actions }); export const alert = { bsStyle: 'danger', msg: 'Ooops', id: 'lksvmcx32' }; export const table = { dbId: 1, selectStar: 'SELECT * FROM ab_user', queryEditorId: 'rJ-KP47a', schema: 'superset', name: 'ab_user', id: 'r11Vgt60', dataPreviewQueryId: null, partitions: { cols: ['username'], latest: 'bob', partitionQuery: 'SHOW PARTITIONS FROM ab_user', }, indexes: [ { unique: true, column_names: ['username'], type: 'UNIQUE', name: 'username', }, { unique: true, column_names: ['email'], type: 'UNIQUE', name: 'email', }, { unique: false, column_names: ['created_by_fk'], name: 'created_by_fk', }, { unique: false, column_names: ['changed_by_fk'], name: 'changed_by_fk', }, ], columns: [ { indexed: false, longType: 'INTEGER(11)', type: 'INTEGER', name: 'id', keys: [ { column_names: ['id'], type: 'pk' as ColumnKeyTypeType, name: null, }, ], }, { indexed: false, longType: 'VARCHAR(64)', type: 'VARCHAR', name: 'first_name', keys: [ { column_names: ['first_name'], name: 'slices_ibfk_1', referred_columns: ['id'], referred_table: 'datasources', type: 'fk' as ColumnKeyTypeType, referred_schema: 'carapal', options: {}, }, { unique: false, column_names: ['druid_datasource_id'], type: 'index' as ColumnKeyTypeType, name: 'druid_datasource_id', }, ], }, { indexed: false, longType: 'VARCHAR(64)', type: 'VARCHAR', name: 'last_name', }, { indexed: true, longType: 'VARCHAR(64)', type: 'VARCHAR', name: 'username', }, { indexed: false, longType: 'VARCHAR(256)', type: 'VARCHAR', name: 'password', }, { indexed: false, longType: 'TINYINT(1)', type: 'TINYINT', name: 'active', }, { indexed: true, longType: 'VARCHAR(64)', type: 'VARCHAR', name: 'email', }, { indexed: false, longType: 'DATETIME', type: 'DATETIME', name: 'last_login', }, { indexed: false, longType: 'INTEGER(11)', type: 'INTEGER', name: 'login_count', }, { indexed: false, longType: 'INTEGER(11)', type: 'INTEGER', name: 'fail_login_count', }, { indexed: false, longType: 'DATETIME', type: 'DATETIME', name: 'created_on', }, { indexed: false, longType: 'DATETIME', type: 'DATETIME', name: 'changed_on', }, { indexed: true, longType: 'INTEGER(11)', type: 'INTEGER', name: 'created_by_fk', }, { indexed: true, longType: 'INTEGER(11)', type: 'INTEGER', name: 'changed_by_fk', }, ], expanded: true, }; export const defaultQueryEditor = { id: 'dfsadfs', autorun: false, dbId: null, latestQueryId: null, selectedText: null, sql: 'SELECT *\nFROM\nWHERE', title: 'Untitled Query', schemaOptions: [ { value: 'main', label: 'main', title: 'main', }, ], }; export const queries = [ { dbId: 1, sql: 'SELECT * FROM superset.slices', sqlEditorId: 'SJ8YO72R', tab: 'Demo', runAsync: false, ctas: false, cached: false, id: 'BkA1CLrJg', progress: 100, startDttm: 1476910566092.96, state: 'success', changedOn: 1476910566000, tempTable: null, userId: 1, executedSql: null, changed_on: '2016-10-19T20:56:06', rows: 42, endDttm: 1476910566798, limit_reached: false, schema: 'test_schema', errorMessage: null, db: 'main', user: 'admin', limit: 1000, serverId: 141, resultsKey: null, results: { columns: [ { is_date: true, name: 'ds', type: 'STRING', }, { is_date: false, name: 'gender', type: 'STRING', }, ], selected_columns: [ { is_date: true, name: 'ds', type: 'STRING', }, { is_date: false, name: 'gender', type: 'STRING', }, ], data: [ { col1: 0, col2: 1 }, { col1: 2, col2: 3 }, ], }, }, { dbId: 1, sql: 'SELECT *FROM superset.slices', sqlEditorId: 'SJ8YO72R', tab: 'Demo', runAsync: true, ctas: false, cached: false, id: 'S1zeAISkx', progress: 100, startDttm: 1476910570802.2, state: 'success', changedOn: 1476910572000, tempTable: null, userId: 1, executedSql: 'SELECT * \nFROM (SELECT created_on, changed_on, id, slice_name, ' + 'druid_datasource_id, table_id, datasource_type, datasource_name, ' + 'viz_type, params, created_by_fk, changed_by_fk, description, ' + 'cache_timeout, perm\nFROM superset.slices) AS inner_qry \n LIMIT 1000', changed_on: '2016-10-19T20:56:12', rows: 42, endDttm: 1476910579693, limit_reached: false, schema: null, errorMessage: null, db: 'main', user: 'admin', limit: 1000, serverId: 142, resultsKey: '417149f4-cd27-4f80-91f3-c45c871003f7', results: null, }, ]; export const queryWithBadColumns = { ...queries[0], results: { data: queries[0].results?.data, selected_columns: [ { is_date: true, name: 'COUNT(*)', type: 'STRING', }, { is_date: false, name: 'this_col_is_ok', type: 'STRING', }, { is_date: false, name: 'a', type: 'STRING', }, { is_date: false, name: '1', type: 'STRING', }, { is_date: false, name: '123', type: 'STRING', }, { is_date: false, name: 'CASE WHEN 1=1 THEN 1 ELSE 0 END', type: 'STRING', }, { is_date: true, name: '_TIMESTAMP', type: 'TIMESTAMP', }, { is_date: true, name: '__TIME', type: 'TIMESTAMP', }, { is_date: false, name: 'my_dupe_col__2', type: 'STRING', }, { is_date: true, name: '__timestamp', type: 'TIMESTAMP', }, { is_date: true, name: '__TIMESTAMP', type: 'TIMESTAMP', }, ], }, }; export const databases = { result: [ { allow_ctas: true, allow_dml: true, allow_run_async: false, database_name: 'main', expose_in_sqllab: true, force_ctas_schema: '', id: 1, }, { allow_ctas: true, allow_dml: false, allow_run_async: true, database_name: 'Presto - Gold', expose_in_sqllab: true, force_ctas_schema: 'tmp', id: 208, }, ], }; export const tables = { options: [ { value: 'birth_names', schema: 'main', label: 'birth_names', title: 'birth_names', }, { value: 'energy_usage', schema: 'main', label: 'energy_usage', title: 'energy_usage', }, { value: 'wb_health_population', schema: 'main', label: 'wb_health_population', title: 'wb_health_population', }, ], }; export const stoppedQuery = { dbId: 1, cached: false, ctas: false, id: 'ryhMUZCGb', progress: 0, results: [], runAsync: false, schema: 'main', sql: 'SELECT ...', sqlEditorId: 'rJaf5u9WZ', startDttm: 1497400851936, state: 'stopped', tab: 'Untitled Query 2', tempTable: '', }; export const failedQueryWithErrorMessage = { dbId: 1, cached: false, ctas: false, errorMessage: 'Something went wrong', id: 'ryhMUZCGb', progress: 0, results: [], runAsync: false, schema: 'main', sql: 'SELECT ...', sqlEditorId: 'rJaf5u9WZ', startDttm: 1497400851936, state: 'failed', tab: 'Untitled Query 2', tempTable: '', }; export const failedQueryWithErrors = { dbId: 1, cached: false, ctas: false, errors: [ { message: 'Something went wrong', error_type: 'TEST_ERROR', level: 'error', extra: null, }, ], id: 'ryhMUZCGb', progress: 0, results: [], runAsync: false, schema: 'main', sql: 'SELECT ...', sqlEditorId: 'rJaf5u9WZ', startDttm: 1497400851936, state: 'failed', tab: 'Untitled Query 2', tempTable: '', }; export const runningQuery = { dbId: 1, cached: false, ctas: false, id: 'ryhMUZCGb', progress: 90, state: 'running', startDttm: Date.now() - 500, }; export const cachedQuery = { ...queries[0], cached: true }; export const initialState = { sqlLab: { offline: false, alerts: [], queries: {}, databases: {}, queryEditors: [defaultQueryEditor], tabHistory: [defaultQueryEditor.id], tables: [], workspaceQueries: [], queriesLastUpdate: 0, activeSouthPaneTab: 'Results', }, messageToasts: [], common: { conf: { DEFAULT_SQLLAB_LIMIT: 1000, SQL_MAX_ROW: 100000, DISPLAY_MAX_ROW: 100, }, }, }; export const query = { id: 'clientId2353', dbId: 1, sql: 'SELECT * FROM something', sqlEditorId: defaultQueryEditor.id, tab: 'unimportant', tempTable: null, runAsync: false, ctas: false, cached: false, };