sample.steps.jsā¢1.58 kB
const { Given, When, Then } = require('@wdio/cucumber-framework');
const LoginPage = require('../pageobjects/login.page.js');
const DashboardPage = require('../pageobjects/dashboard.page.js');
/**
* Step definitions for User Login feature
* Generated from Gherkin syntax
*/
Given('I am on the login page', async () => {
await LoginPage.open();
await expect(LoginPage.loginForm).toBeDisplayed();
});
When('I enter valid username {string}', async (username) => {
await LoginPage.setUsername(username);
});
When('I enter invalid username {string}', async (username) => {
await LoginPage.setUsername(username);
});
When('I enter valid password {string}', async (password) => {
await LoginPage.setPassword(password);
});
When('I enter invalid password {string}', async (password) => {
await LoginPage.setPassword(password);
});
When('I click the login button', async () => {
await LoginPage.clickLogin();
});
Then('I should be redirected to the dashboard', async () => {
await DashboardPage.waitForPageLoad();
await expect(browser).toHaveUrl(expect.stringContaining('/dashboard'));
});
Then('I should see the welcome message', async () => {
await expect(DashboardPage.welcomeMessage).toBeDisplayed();
});
Then('I should see an error message {string}', async (errorMessage) => {
await expect(LoginPage.errorMessage).toHaveText(errorMessage);
});
Then('I should remain on the login page', async () => {
await expect(browser).toHaveUrl(expect.stringContaining('/login'));
await expect(LoginPage.loginForm).toBeDisplayed();
});