2024-02-14 12:20:16 +05:30

69 lines
2.2 KiB
JavaScript

/*
* Copyright 2023 Collate.
* Licensed 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 { SidebarItem } from '../constants/Entity.interface';
import { interceptURL, RETRY_TIMES, verifyResponseStatusCode } from './common';
const BASE_WAIT_TIME = 4000;
let isSuccessStatus = false;
export const checkDataInsightSuccessStatus = (
count = 1,
timer = BASE_WAIT_TIME
) => {
cy.get('[data-testid="app-run-history-table"]')
.find('[data-testid="pipeline-status"]')
.first()
.as('checkRun');
// the latest run should be success
cy.get('@checkRun').then(($ingestionStatus) => {
if (
$ingestionStatus.text() !== 'Success' &&
$ingestionStatus.text() !== 'Failed' &&
count <= RETRY_TIMES
) {
// retry after waiting with log1 method [4s,8s,16s,32s,64s]
cy.wait(timer);
timer *= 2;
cy.reload();
checkDataInsightSuccessStatus(++count, timer * 2);
} else {
if ($ingestionStatus.text() !== 'Success') {
cy.get('@checkRun').should('have.text', 'Success');
isSuccessStatus = true;
}
isSuccessStatus = false;
}
});
};
export const verifyKpiChart = () => {
interceptURL(
'GET',
'/api/v1/analytics/dataInsights/charts/aggregate?*',
'dataInsightsChart'
);
checkDataInsightSuccessStatus();
cy.sidebarClick(SidebarItem.DATA_INSIGHT);
verifyResponseStatusCode('@dataInsightsChart', 200);
cy.get('[data-testid="search-dropdown-Team"]').should('be.visible');
cy.get('[data-testid="search-dropdown-Tier"]').should('be.visible');
cy.get('[data-testid="summary-card"]').should('be.visible');
cy.get('[data-testid="kpi-card"]').should('be.visible');
if (isSuccessStatus) {
cy.get('#kpi-chart').scrollIntoView().should('be.visible');
}
};