Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
c111ab4
test: add e2e tests for tsc, slack and ambassadors page
anushkaaaaaaaa Jul 10, 2025
f7f8e6e
fix: update
anushkaaaaaaaa Jul 15, 2025
b40bada
Merge branch 'master' into tscslack
anushkaaaaaaaa Jul 15, 2025
d408d53
fix: small changes
anushkaaaaaaaa Jul 16, 2025
279a97f
Merge branch 'tscslack' of https://github.com/anushkaaaaaaaa/website …
anushkaaaaaaaa Jul 16, 2025
90bea84
Merge branch 'master' into tscslack
anushkaaaaaaaa Jul 18, 2025
3200b51
Merge branch 'master' into tscslack
anushkaaaaaaaa Aug 18, 2025
21f89ca
feat: add tests for Ambassadors and TSC pages, including social links…
anushkaaaaaaaa Nov 3, 2025
f276e0b
Merge branch 'master' into tscslack
anushkaaaaaaaa Nov 3, 2025
6219990
small change
anushkaaaaaaaa Nov 3, 2025
f749d19
Merge branch 'tscslack' of https://github.com/anushkaaaaaaaa/website …
anushkaaaaaaaa Nov 3, 2025
47a54aa
refactor: format verifyKeySectionsAndLinks method for improved readab…
anushkaaaaaaaa Nov 3, 2025
1e16720
fix: update link in verifyKeySectionsAndLinks method to correct URL
anushkaaaaaaaa Nov 3, 2025
d3bcbf7
Merge branch 'master' into tscslack
anushkaaaaaaaa Nov 9, 2025
0e1d14c
Merge branch 'master' into tscslack
anushkaaaaaaaa Nov 15, 2025
7a15871
test: enhance Slack workspace tests for inactive link handling
anushkaaaaaaaa Nov 15, 2025
ca73a27
refactor: streamline link status checks and enhance test structure fo…
anushkaaaaaaaa Nov 15, 2025
f703eec
test: ensure visibility checks for Slack login buttons and footer links
anushkaaaaaaaa Nov 15, 2025
7353b76
refactor: remove unused navigation methods for Tools and Docs pages
anushkaaaaaaaa Nov 15, 2025
7196dc4
Merge branch 'master' into tscslack
anushkaaaaaaaa Nov 15, 2025
4921a24
refactor: replace static wait with dynamic page load checks for Slack…
anushkaaaaaaaa Nov 15, 2025
82bf898
Merge branch 'master' into tscslack
anushkaaaaaaaa Nov 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions cypress/pages/homepage.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import ToolsPage from './ToolsPage';
import DocsPage from './DocsPage';

class HomePage {
visit() {
cy.visit('/');
Expand All @@ -19,6 +22,21 @@ class HomePage {
'Building the future of Event-Driven Architectures (EDA)',
);
}

goToToolsPage() {
cy.get('[data-testid="Navbar-main"]').contains('Tools').click();
return new ToolsPage();
}

goToDocsPage() {
cy.get('[data-testid="Navbar-main"]').contains('Docs').click();
return new DocsPage();
}


goToTSCPage(){
cy.visit('/community/tsc')
}
}

export default HomePage;
38 changes: 38 additions & 0 deletions cypress/pages/slack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
class SlackPage {

visitSlack(){
cy.visit('https://asyncapi.slack.com/join/shared_invite/zt-33bsaqqgz-ZL0a3ZUiuy4stSbXB~~E9A#/shared-invite/email');
}
verifyGoogleLoginButton() {
cy.get('[data-qa="base_google_login_button"]')
.should('have.id', 'google_login_button')
.and('have.attr', 'type', 'button');
}

verifyAppleLoginButton() {
cy.get('[data-qa="base_apple_login_button"]')
.should('have.id', 'apple_login_button')
.and('have.attr', 'href')
.and('include', 'slack.com/shared-invite/oauth/apple/start');
}

verifyContinueWithEmail() {
cy.get('[data-qa="join_with_email"]')
.should('have.attr', 'type', 'button');
}

verifyPrivacyAndTerms() {
cy.get('[href="/legal"]')
.should('have.attr', 'href', '/legal');
}
verifyContactUs(){
cy.get('[href="/help/requests/new"]')
.should('have.attr', 'href', '/help/requests/new');
}
verifyChangeRegion(){
cy.get('a[href="#"]').contains('Change region');

}
}

export default SlackPage;
32 changes: 32 additions & 0 deletions cypress/pages/tscpage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@

class TSCPage {


hoverCommunityLink() {
cy.get('[data-testid="NavItem-Link"]').contains('Community').trigger('mouseover');
}

fillNewsletterForm(name, email) {
cy.get('[data-testid="NewsletterSubscribe-text-input"]').type(name);
cy.get('[data-testid="NewsletterSubscribe-email-input"]').type(email);
}

submitNewsletter() {
cy.get('[data-testid="Button-main"]').click();
}

getSuccessMessage() {
return cy.get('[data-testid="Paragraph-test"]').contains(
`You'll receive an email whenever someone requests the TSC to vote.`
);
}

getFailureMessage() {
return cy.get('[data-testid="Paragraph-test"]').contains(
`Subscription failed, please let us know about it by submitting a bug`
);
}
}

export default TSCPage;

15 changes: 15 additions & 0 deletions cypress/slackworkspace.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import SlackPage from './pages/slack';

describe('Slack tests', () => {
const slackPage = new SlackPage();

it('User navigates Slack Workspace Page', () => {
slackPage.visitSlack();
slackPage.verifyGoogleLoginButton();
slackPage.verifyAppleLoginButton();
slackPage.verifyContinueWithEmail();
slackPage.verifyPrivacyAndTerms();
slackPage.verifyContactUs();
slackPage.verifyChangeRegion();
});
});
48 changes: 48 additions & 0 deletions cypress/tscpage.cy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@

import HomePage from './pages/homepage';
import TSCPage from './pages/tscpage';

let homePage;
let tscpage;

beforeEach(() => {

homePage = new HomePage();
tscpage = new TSCPage();
homePage.visit();
homePage.goToTSCPage();
});

describe('TSC Newsletter Subscription', () => {
it('should succeed in subscribing to the newsletter', () => {

tscpage.fillNewsletterForm('anushka', '[email protected]');
tscpage.submitNewsletter();
tscpage.getSuccessMessage().should('be.visible');
});

it('should show correct failure message', () => {

tscpage.fillNewsletterForm('anushka', '[email protected]');
tscpage.submitNewsletter();
tscpage.getFailureMessage().should('be.visible');
});


it('verifies key links on the TSC page', () => {

const linksToVerify = [
{href: 'https://github.com/asyncapi/community/blob/master/TSC_MEMBERSHIP.md',label:'Link'},
{href: 'https://github.com/asyncapi/community/blob/master/CHARTER.md',label:'Open Governance Model'},
{href: 'https://www.asyncapi.com/blog/governance-motivation',label:'this'}
];

linksToVerify.forEach(({ href,label }) => {
cy.get(`a[href="${href}"]`).contains(label);


})
});
});


Loading