mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 18:30:41 -06:00
ced065c7e9
* clean up some e2e/runtime types * fix some stories * some more fixes * fix route props * update unit tests * update more unit tests * don't throw here
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');
|