feature/gherkin-e2e-tests #26
@@ -0,0 +1,26 @@
|
|||||||
|
Feature: Wordmark Navigation
|
||||||
|
As a user
|
||||||
|
I want the EuchreCamp wordmark to navigate to my appropriate homepage
|
||||||
|
So that I can quickly access my relevant content
|
||||||
|
|
||||||
|
@happy-path @navigation @issue-24
|
||||||
|
Scenario: Unauthenticated user clicks wordmark goes to public homepage
|
||||||
|
Given I am on the home page
|
||||||
|
When I click the "EuchreCamp" wordmark
|
||||||
|
Then I should be on the home page
|
||||||
|
And I should see "Top 10 Players"
|
||||||
|
And I should see "Sign In"
|
||||||
|
|
||||||
|
@happy-path @navigation @authenticated @issue-24
|
||||||
|
Scenario: Authenticated player clicks wordmark goes to their profile
|
||||||
|
Given I am logged in as a player
|
||||||
|
When I click the "EuchreCamp" wordmark
|
||||||
|
Then I should be redirected to my profile page
|
||||||
|
And I should see "Welcome"
|
||||||
|
|
||||||
|
@happy-path @navigation @authenticated @issue-24
|
||||||
|
Scenario: Authenticated admin clicks wordmark goes to admin dashboard
|
||||||
|
Given I am logged in as a club admin
|
||||||
|
When I click the "EuchreCamp" wordmark
|
||||||
|
Then I should be on the admin page
|
||||||
|
And I should see "Admin"
|
||||||
@@ -139,6 +139,13 @@ When('I click the {string} link', async function (linkText: string) {
|
|||||||
await world.page.click(selector);
|
await world.page.click(selector);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
When('I click the {string} wordmark', async function (wordmarkText: string) {
|
||||||
|
const selector = `a:has-text("${wordmarkText}")`;
|
||||||
|
console.log(`🌍 Clicking wordmark: ${wordmarkText}`);
|
||||||
|
await world.page.click(selector);
|
||||||
|
await world.page.waitForLoadState('networkidle');
|
||||||
|
});
|
||||||
|
|
||||||
When('I click the {string} element', async function (elementText: string) {
|
When('I click the {string} element', async function (elementText: string) {
|
||||||
const selector = `text=${elementText}`;
|
const selector = `text=${elementText}`;
|
||||||
console.log(`🌍 Clicking element: ${elementText}`);
|
console.log(`🌍 Clicking element: ${elementText}`);
|
||||||
@@ -202,6 +209,20 @@ Then('I should be on the login page', async function () {
|
|||||||
expect(currentUrl).toContain('/auth/login');
|
expect(currentUrl).toContain('/auth/login');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Then('I should be on the admin page', async function () {
|
||||||
|
const currentUrl = world.page.url();
|
||||||
|
|
||||||
|
console.log(`🌍 Checking current URL: ${currentUrl}`);
|
||||||
|
expect(currentUrl).toContain('/admin');
|
||||||
|
});
|
||||||
|
|
||||||
|
Then('I should be on the home page', async function () {
|
||||||
|
const currentUrl = world.page.url();
|
||||||
|
|
||||||
|
console.log(`🌍 Checking current URL: ${currentUrl}`);
|
||||||
|
expect(currentUrl).toContain('/');
|
||||||
|
});
|
||||||
|
|
||||||
Then('I should be redirected to {string}', async function (path: string) {
|
Then('I should be redirected to {string}', async function (path: string) {
|
||||||
await world.page.waitForLoadState('networkidle');
|
await world.page.waitForLoadState('networkidle');
|
||||||
const currentUrl = world.page.url();
|
const currentUrl = world.page.url();
|
||||||
|
|||||||
Reference in New Issue
Block a user