mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Login via the API by default in Cypress (#43167)
* Use the api to login in cypress by default
* export getBaseUrl
* Revert "export getBaseUrl"
This reverts commit ae7eecea37.
* just use BASE_URL from the env
* fix exemplars test
* move into separate functions
This commit is contained in:
@@ -6,6 +6,7 @@ export const smokeTestScenario = {
|
|||||||
addScenarioDataSource: true,
|
addScenarioDataSource: true,
|
||||||
addScenarioDashBoard: true,
|
addScenarioDashBoard: true,
|
||||||
skipScenario: false,
|
skipScenario: false,
|
||||||
|
loginViaApi: false,
|
||||||
scenario: () => {
|
scenario: () => {
|
||||||
e2e.flows.openDashboard();
|
e2e.flows.openDashboard();
|
||||||
e2e.components.PageToolbar.item('Add panel').click();
|
e2e.components.PageToolbar.item('Add panel').click();
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ describe('Exemplars', () => {
|
|||||||
e2e.flows.login('admin', 'admin');
|
e2e.flows.login('admin', 'admin');
|
||||||
|
|
||||||
e2e()
|
e2e()
|
||||||
.request({ url: `/api/datasources/name/${dataSourceName}`, failOnStatusCode: false })
|
.request({ url: `${e2e.env('BASE_URL')}/api/datasources/name/${dataSourceName}`, failOnStatusCode: false })
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
if (response.isOkStatusCode) {
|
if (response.isOkStatusCode) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,9 +1,21 @@
|
|||||||
import { e2e } from '../index';
|
import { e2e } from '../index';
|
||||||
|
import { fromBaseUrl } from '../support/url';
|
||||||
|
|
||||||
const DEFAULT_USERNAME = 'admin';
|
const DEFAULT_USERNAME = 'admin';
|
||||||
const DEFAULT_PASSWORD = 'admin';
|
const DEFAULT_PASSWORD = 'admin';
|
||||||
|
|
||||||
export const login = (username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD) => {
|
const loginApi = (username: string, password: string) => {
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: fromBaseUrl('/login'),
|
||||||
|
body: {
|
||||||
|
user: username,
|
||||||
|
password,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const loginUi = (username: string, password: string) => {
|
||||||
e2e().logToConsole('Logging in with username:', username);
|
e2e().logToConsole('Logging in with username:', username);
|
||||||
e2e.pages.Login.visit();
|
e2e.pages.Login.visit();
|
||||||
e2e.pages.Login.username()
|
e2e.pages.Login.username()
|
||||||
@@ -18,5 +30,13 @@ export const login = (username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD)
|
|||||||
}
|
}
|
||||||
|
|
||||||
e2e().get('.login-page').should('not.exist');
|
e2e().get('.login-page').should('not.exist');
|
||||||
|
};
|
||||||
|
|
||||||
|
export const login = (username = DEFAULT_USERNAME, password = DEFAULT_PASSWORD, loginViaApi = true) => {
|
||||||
|
if (loginViaApi) {
|
||||||
|
loginApi(username, password);
|
||||||
|
} else {
|
||||||
|
loginUi(username, password);
|
||||||
|
}
|
||||||
e2e().logToConsole('Logged in with username:', username);
|
e2e().logToConsole('Logged in with username:', username);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export interface ScenarioArguments {
|
|||||||
skipScenario?: boolean;
|
skipScenario?: boolean;
|
||||||
addScenarioDataSource?: boolean;
|
addScenarioDataSource?: boolean;
|
||||||
addScenarioDashBoard?: boolean;
|
addScenarioDashBoard?: boolean;
|
||||||
|
loginViaApi?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const e2eScenario = ({
|
export const e2eScenario = ({
|
||||||
@@ -16,12 +17,13 @@ export const e2eScenario = ({
|
|||||||
skipScenario = false,
|
skipScenario = false,
|
||||||
addScenarioDataSource = false,
|
addScenarioDataSource = false,
|
||||||
addScenarioDashBoard = false,
|
addScenarioDashBoard = false,
|
||||||
|
loginViaApi = true,
|
||||||
}: ScenarioArguments) => {
|
}: ScenarioArguments) => {
|
||||||
describe(describeName, () => {
|
describe(describeName, () => {
|
||||||
if (skipScenario) {
|
if (skipScenario) {
|
||||||
it.skip(itName, () => scenario());
|
it.skip(itName, () => scenario());
|
||||||
} else {
|
} else {
|
||||||
before(() => e2e.flows.login(e2e.env('USERNAME'), e2e.env('PASSWORD')));
|
before(() => e2e.flows.login(e2e.env('USERNAME'), e2e.env('PASSWORD'), loginViaApi));
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
Cypress.Cookies.preserveOnce('grafana_session');
|
Cypress.Cookies.preserveOnce('grafana_session');
|
||||||
|
|||||||
Reference in New Issue
Block a user