superset/superset-frontend/cypress-base/cypress/integration/sqllab/tabs.test.js
cccs-Dustin 5a5ff99c37
fix(SQL Editor): names new query tabs correctly (#18951)
* Added in code changes that now properly increment the Untitled Query SQL Lab tab names. All that is left is to add tests to make sure that the function works correctly

* Updated the code so that it adds to the untitled_query_numbers variable only if the character after the string 'Untitled Query ' is a number. This prevents any issues when trying to get the maximum value in the list.

* Refactored part of the mapping code, to make it shorter and easier to read/understand

* Fixed issues in the code that were causing some of the CI tests to fail

* Made code changes based on comments within the PR. Also added a unit test to make sure that the newQueryEditor function in the TabbedSqlEditors component works as intended

* Fixed the failing cypress test in tabs.test.js
2022-03-04 18:28:30 +02:00

66 lines
2.1 KiB
JavaScript

/**
* 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.
*/
describe('SqlLab query tabs', () => {
beforeEach(() => {
cy.login();
cy.visit('/superset/sqllab');
});
it('allows you to create a tab', () => {
cy.get('[data-test="sql-editor-tabs"]').then(tabList => {
const initialTabCount = tabList.length;
// add tab
cy.get('[data-test="add-tab-icon"]').first().click();
// wait until we find the new tab
cy.get('[data-test="sql-editor-tabs"]')
.children()
.eq(0)
.contains(`Untitled Query ${initialTabCount}`);
cy.get('[data-test="sql-editor-tabs"]')
.children()
.eq(0)
.contains(`Untitled Query ${initialTabCount + 1}`);
});
});
it('allows you to close a tab', () => {
cy.get('[data-test="sql-editor-tabs"]')
.children()
.then(tabListA => {
const initialTabCount = tabListA.length;
// open the tab dropdown to remove
cy.get('[data-test="dropdown-toggle-button"]')
.children()
.first()
.click({
force: true,
});
// first item is close
cy.get('[data-test="close-tab-menu-option"]').click();
cy.get('[data-test="sql-editor-tabs"]').should(
'have.length',
initialTabCount - 1,
);
});
});
});