mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* Standarize e2e for addDashbaord e2e flow
* WIP: Duplicate e2e dashboard flows and smoke test for scene e2e tests
* Fix autoformatting mistake for bash file
* Enable dashboardScene using local storage and only for the scene folder
* Add missing folders
* Set the feature toggle in the before of all tests
* Revert "Standarize e2e for addDashbaord e2e flow"
This reverts commit 6b9ea9d5a4.
* Add missing e2e selectors to NavToolbarActions, and modify addDashboard scene flow
* e2e: panels_smokescreen.spec.ts migrated
* e2e smokeTestSceneario migrated
* Start migrating dashbaord-suite e2e
* WIP create variable types
* adjust tests for scenes
* restore dashboard json file
* update scenes version
* restore pkg/build/wire/internal/wire/testdata modifications
* finalising test adjusments
* restore pkg/build/wire/internal/wire/testdata files
* add latest scenes version and update tests
* add drone setup for dashboard scenes tests
* update to latest scenes version
* adjust drone errors
* adjust indentation in drone yml file
* drone adjustments
* add github workflow to run scenes e2e
* restore drone file
* adjust github workflow
* wip: github workflow adjustments
* test remove gpu
* bump
* undo formating changes
* wip: github workflow debugging
* adjusting flaky tests
* update to latest scenes
* clean up workflow file
* adjust flaky test
* clean up pr
* finalise worflow logic and add to codeowners
* clean up launching old arch dashboards e2e separately
---------
Co-authored-by: Sergej-Vlasov <sergej.s.vlasov@gmail.com>
Co-authored-by: Jeff Levin <jeff@levinology.com>
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { DeleteDashboardConfig } from '../flows/deleteDashboard';
|
|
import { DeleteDataSourceConfig } from '../flows/deleteDataSource';
|
|
|
|
export interface ScenarioContext {
|
|
addedDashboards: DeleteDashboardConfig[];
|
|
addedDataSources: DeleteDataSourceConfig[];
|
|
lastAddedDashboard: string; // @todo rename to `lastAddedDashboardTitle`
|
|
lastAddedDashboardUid: string;
|
|
lastAddedDataSource: string; // @todo rename to `lastAddedDataSourceName`
|
|
lastAddedDataSourceId: string;
|
|
hasChangedUserPreferences: boolean;
|
|
}
|
|
|
|
const scenarioContext: ScenarioContext = {
|
|
addedDashboards: [],
|
|
addedDataSources: [],
|
|
hasChangedUserPreferences: false,
|
|
get lastAddedDashboard() {
|
|
return lastProperty(this.addedDashboards, 'title');
|
|
},
|
|
get lastAddedDashboardUid() {
|
|
return lastProperty(this.addedDashboards, 'uid');
|
|
},
|
|
get lastAddedDataSource() {
|
|
return lastProperty(this.addedDataSources, 'name');
|
|
},
|
|
get lastAddedDataSourceId() {
|
|
return lastProperty(this.addedDataSources, 'id');
|
|
},
|
|
};
|
|
|
|
const lastProperty = <T extends DeleteDashboardConfig | DeleteDataSourceConfig, K extends keyof T>(
|
|
items: T[],
|
|
key: K
|
|
) => items[items.length - 1]?.[key] ?? '';
|
|
|
|
export const getScenarioContext = (): Cypress.Chainable<ScenarioContext> =>
|
|
cy
|
|
.wrap(
|
|
{
|
|
getScenarioContext: (): ScenarioContext => ({ ...scenarioContext }),
|
|
},
|
|
{ log: false }
|
|
)
|
|
.invoke({ log: false }, 'getScenarioContext');
|
|
|
|
export const setScenarioContext = (newContext: Partial<ScenarioContext>): Cypress.Chainable<ScenarioContext> =>
|
|
cy
|
|
.wrap(
|
|
{
|
|
setScenarioContext: () => {
|
|
Object.assign(scenarioContext, newContext);
|
|
},
|
|
},
|
|
{ log: false }
|
|
)
|
|
.invoke({ log: false }, 'setScenarioContext');
|