/**
 * 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 '@cypress/code-coverage/support' ; const BASE_EXPLORE_URL = '/superset/explore/?form_data=' ; Cypress . on ( 'uncaught:exception' , err => { if ( err . message && /ResizeObserver loop limit exceeded/ . test ( err . message ) ) { return false ; } } ) ; Cypress . Commands . add ( 'login' , ( ) => { cy . request ( { method : 'POST' , url : '/login/' , body : { username : 'admin' , password : 'general' } , } ) . then ( response => { expect ( response . status ) . to . eq ( 200 ) ; } ) ; } ) ; Cypress . Commands . add ( 'visitChartByName' , name => { cy . request ( `/chart/api/read?_flt_3_slice_name=${ name }` ) . then ( response => { cy . visit ( `${ BASE_EXPLORE_URL }{"slice_id": ${ response . body . pks [ 0 ] }}` ) ; } ) ; } ) ; Cypress . Commands . add ( 'visitChartById' , chartId => cy . visit ( `${ BASE_EXPLORE_URL }{"slice_id": ${ chartId }}` ) ) ; Cypress . Commands . add ( 'visitChartByParams' , params => { const queryString = typeof params === 'string' ? params : JSON . stringify ( params ) ; const url = `${ BASE_EXPLORE_URL }${ queryString }` ; return cy . visit ( url ) ; } ) ; Cypress . Commands . add ( 'verifySliceContainer' , chartSelector => { cy . get ( '.slice_container' ) . should ( 'be.visible' ) . within ( ( ) => { if ( chartSelector ) { cy . get ( chartSelector ) . should ( 'be.visible' ) . then ( chart => { expect ( chart [ 0 ] . clientWidth ) . greaterThan ( 0 ) ; expect ( chart [ 0 ] . clientHeight ) . greaterThan ( 0 ) ; } ) ; } } ) ; return cy ; } ) ; Cypress . Commands . add ( 'verifySliceSuccess' , ( { waitAlias , querySubstring , chartSelector , } ) => { cy . wait ( waitAlias ) . then ( ( { response } ) => { cy . verifySliceContainer ( chartSelector ) ; const responseBody = response ?. body ; if ( querySubstring ) { const query = responseBody . query || responseBody . result [ 0 ] . query || '' ; if ( querySubstring instanceof RegExp ) { expect ( query ) . to . match ( querySubstring ) ; } else { expect ( query ) . to . contain ( querySubstring ) ; } } } ) ; return cy ; } ) ;