-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
test: add E2E tests for home page, header and footer components #4194
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for asyncapi-website ready!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughAdds comprehensive Cypress E2E specs, page objects (base + per-page), JSON fixtures for homepage/footer, and a typed footer data module exporting initiative, social, news links and a netlify link for use in tests and the app. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Tester
participant Spec as Cypress Spec
participant HomePO as HomePage PO
participant Router as App Router
participant PagePO as Target Page PO
Tester->>Spec: run "navigate to <Page>" test
Spec->>HomePO: visit("/")
Spec->>HomePO: goTo<Page>Page()
HomePO->>Router: click nav link
Router-->>PagePO: load page
Spec->>PagePO: verifyPageLoaded()
PagePO-->>Spec: assertion results
sequenceDiagram
autonumber
participant Spec as Cypress Spec
participant HeaderPO as Header PO
participant DOM as Navbar/Flyout
Spec->>HeaderPO: visit("/")
Spec->>HeaderPO: verify<Section>Dropdown()
HeaderPO->>DOM: hover nav item ("Docs"/"Tools"/"Community")
DOM-->>Spec: flyout visible assertion
sequenceDiagram
autonumber
participant Spec as Cypress Spec
participant FooterPO as Footer PO
participant DOM as <footer>
Spec->>FooterPO: visit("/")
loop for each link in (initiativeLinks, socialMediaData, newsLinks, netlify)
Spec->>FooterPO: verifyFooterLink(href, label)
FooterPO->>DOM: within(footer) find a[attr=href]
DOM-->>Spec: visible + attribute (+ optional text)
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4194 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 22 22
Lines 780 780
Branches 144 144
=========================================
Hits 780 780 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
🧹 Nitpick comments (12)
.gitignore (1)
25-26: Remove duplicate entries.These cypress ignore patterns are already defined at lines 17-18. The duplicate entries should be removed to maintain a clean .gitignore file.
Apply this diff to remove the duplicates:
-cypress/videos -cypress/screenshotscypress/support/commands.js (1)
1-37: Consider implementing actual commands or removing unused template.This file contains only commented examples without any actual custom commands. Consider either:
- Implementing specific custom commands needed for your E2E tests
- Removing the file if no custom commands are required yet
Having template-only files can add clutter to the codebase.
cypress/pages/ToolsPage.js (1)
1-7: Consider expanding the page object with element interactions.The basic page object structure is correct. However, for comprehensive E2E testing, consider adding:
- Element selectors for key page components
- Action methods for user interactions
- Helper methods for common assertions
This will make your tests more maintainable and reusable.
Example expansion:
class ToolsPage { visit() { cy.visit('/tools'); } get toolsHeader() { return cy.get('[data-testid="tools-header"]'); } verifyPageLoaded() { this.toolsHeader.should('be.visible'); return this; } }cypress/pages/CommunityPage.js (1)
1-7: Page object structure is consistent and correct.The implementation follows the same pattern as other page objects in the suite, which is good for consistency. Consider the same enhancements suggested for ToolsPage.js to make it more comprehensive for E2E testing.
cypress/pages/RoadmapPage.js (1)
1-7: LGTM! Consider enhancing with element interaction methods.The page object follows the standard Cypress page object model pattern correctly. The implementation is clean and consistent.
Consider enhancing this page object with methods to interact with specific elements on the roadmap page:
class RoadmapPage { visit() { cy.visit('/roadmap'); } + + verifyPageTitle() { + cy.get('h1').should('contain', 'Vision & Roadmap'); + return this; + } + + verifyPageLoaded() { + cy.url().should('include', '/roadmap'); + return this; + } }tsconfig.json (1)
31-31: Improve formatting for better readability.The inclusion of Cypress files in the TypeScript configuration is correct and necessary for proper tooling support.
Consider improving the formatting for better readability:
- "**/*.json" -, "cypress/support/e2e.js", "cypress/support/commands.js", "cypress.config.js" ], + "**/*.json", + "cypress/support/e2e.js", + "cypress/support/commands.js", + "cypress.config.js" + ],cypress/homepage.cy.js (1)
33-33: Fix missing semicolon.it('User verifies important links', () => { homePage.verifyHomepageCardLinks(); - }) + });cypress/footer.cy.js (3)
11-13: Consider consistent destructuring usage.For consistency with the social links test, consider using destructuring here as well:
it('User verifies the initiative section', () => { - footer.initiativeLinks.forEach((link) => { - footer.verifyLink(link.href, link.text); + footer.initiativeLinks.forEach(({ href, text }) => { + footer.verifyLink(href, text); }); });
23-25: Apply consistent destructuring pattern.For consistency with other tests, use destructuring here as well:
it('User verifies the news section', () => { - footer.newsLinks.forEach((link) => { - footer.verifyLink(link.href, link.text); + footer.newsLinks.forEach(({ href, text }) => { + footer.verifyLink(href, text); }); });
28-30: Clarify the empty text parameter for Netlify link test.The empty string passed as the text parameter might indicate that the Netlify link doesn't have visible text or uses an image. Consider adding a comment to explain this or using a more descriptive approach.
it('User verifies Netlify link', () => { - footer.verifyLink('https://netlify.com', ''); + // Netlify link might be an image/logo without text + footer.verifyLink('https://netlify.com', ''); });cypress/pages/header.js (1)
6-11: Consider adding error handling for element not found.The current implementation assumes the navigation item exists. Consider adding validation:
verifyDropdownSections(navItemName) { cy.get(`[data-testid="Navbar-main"] a`) .contains(navItemName) + .should('exist') .trigger('mouseover'); cy.get(`[data-testid="Flyout-main"]`).should('be.visible'); }cypress.config.js (1)
14-14: Consider environment-specific baseUrl configurationThe hardcoded
baseUrl: 'http://127.0.0.1:3000'works for local development but consider making this configurable for different environments (CI/CD, staging, etc.) using environment variables.- baseUrl: 'http://127.0.0.1:3000', + baseUrl: process.env.CYPRESS_BASE_URL || 'http://127.0.0.1:3000',
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (19)
.gitignore(1 hunks)cypress.config.js(1 hunks)cypress/fixtures/example.json(1 hunks)cypress/footer.cy.js(1 hunks)cypress/header.cy.js(1 hunks)cypress/homepage.cy.js(1 hunks)cypress/pages/BlogPage.js(1 hunks)cypress/pages/CaseStudiesPage.js(1 hunks)cypress/pages/CommunityPage.js(1 hunks)cypress/pages/DocsPage.js(1 hunks)cypress/pages/Footer.js(1 hunks)cypress/pages/RoadmapPage.js(1 hunks)cypress/pages/ToolsPage.js(1 hunks)cypress/pages/header.js(1 hunks)cypress/pages/homepage.js(1 hunks)cypress/support/commands.js(1 hunks)cypress/support/e2e.js(1 hunks)package.json(2 hunks)tsconfig.json(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (2)
cypress/pages/RoadmapPage.js (1)
pages/roadmap.tsx (1)
RoadmapPage(485-696)
cypress/pages/Footer.js (1)
components/footer/Footer.tsx (1)
Footer(14-127)
⏰ Context from checks skipped due to timeout of 180000ms (5)
- GitHub Check: Redirect rules - asyncapi-website
- GitHub Check: Header rules - asyncapi-website
- GitHub Check: Pages changed - asyncapi-website
- GitHub Check: Test NodeJS PR - macos-13
- GitHub Check: Test NodeJS PR - windows-latest
🔇 Additional comments (12)
cypress/fixtures/example.json (1)
1-5: ```shell
#!/bin/bashSearch for any usage of the example fixture in the Cypress tests
1. Direct cy.fixture('example')
rg -n "cy.fixture(['"]example" cypress/ || echo "No direct cy.fixture('example') references found."
2. fixture: 'example' (used in intercept/route)
rg -n "fixture\s*:\s*['"]example" cypress/ || echo "No intercept/route fixture usage found."
3. import example.json
rg -n "import.*example.json" cypress/ || echo "No import of example.json found."
4. require example.json
rg -n "require.*example.json" cypress/ || echo "No require of example.json found."
</details> <details> <summary>cypress/pages/BlogPage.js (1)</summary> `1-7`: **LGTM! Consistent page object implementation.** The BlogPage class follows the same clean pattern as other page objects in the suite. The implementation is correct and maintains consistency across the testing framework. </details> <details> <summary>cypress/pages/CaseStudiesPage.js (1)</summary> `1-7`: **LGTM! Excellent consistency across page objects.** The CaseStudiesPage maintains the same clean, consistent pattern as the other page objects in this PR. The implementation is correct and the structure is well-organized. </details> <details> <summary>package.json (2)</summary> `10-10`: **LGTM! Standard E2E test script addition.** The test:e2e script is properly configured to run Cypress tests in headless mode, which is appropriate for CI/CD integration. --- `152-152`: **Verify Cypress version for latest security updates.** The Cypress dependency addition follows standard practices for E2E testing integration. Please verify that Cypress version 14.4.0 is current and includes the latest security updates: ```web What is the latest stable version of Cypress and are there any known security vulnerabilities in version 14.4.0?cypress/support/e2e.js (2)
1-17: Standard Cypress support file implementation.The file follows Cypress conventions with appropriate comments and import structure.
16-17: Verify that the commands.js file exists.The import statement references
'./commands'which should correspond to acommands.jsfile in the same directory.#!/bin/bash # Description: Check if the commands.js file exists in the cypress/support directory # Expected: File should exist and be properly structured fd -t f "commands.js" cypress/support/cypress/homepage.cy.js (1)
1-34: Well-structured test suite with clear test organization.The test suite follows Cypress best practices with:
- Proper use of page object pattern
- Clear and descriptive test names
- Appropriate setup in beforeEach hook
- Good separation of concerns with individual test cases
cypress/footer.cy.js (1)
1-31: Well-organized footer validation test suite.The test suite effectively validates different footer sections using a data-driven approach with forEach loops. Good use of the page object pattern.
cypress/pages/header.js (1)
1-26: Excellent page object implementation with good abstraction.The class demonstrates several best practices:
- Clean abstraction with generic method and specific wrappers
- Proper use of data-testid selectors
- Appropriate mouseover trigger for dropdown testing
- Good method naming and structure
cypress/pages/Footer.js (1)
1-44: LGTM - Well-structured page object implementationThe Footer page object follows Cypress best practices with clean separation of concerns, reusable verification methods, and well-organized link data structures. The
verifyLinkmethod properly handles both text and attribute validation.cypress/pages/homepage.js (1)
119-147: LGTM - Clean navigation methodsThe navigation methods follow good practices by returning page object instances for method chaining, enabling fluent test writing.
|
recording of e2e tests for homepage, header and footer homepage.cy.js.Index.homepage.cy.js.-.asyncapi.-.Visual.Studio.Code.2025-06-19.22-15-28.mp4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (3)
cypress/pages/BaseFooterPage.js (3)
2-4: Accept a path argument in visit() (default '/')This makes the base page reusable beyond the homepage with zero call‑site changes.
- visit() { - cy.visit('/'); - } + visit(path = '/') { + cy.visit(path); + }
6-12: Make text assertion explicit and guard against ambiguous matches
- Prefer 'contain.text' for clarity over generic 'contain'.
- If the same href appears in both header and footer, ensure calls are scoped via cy.within(...) in the caller to avoid multi‑element subjects.
- return text ? chain.and('contain', text) : chain; + return text ? chain.and('contain.text', text) : chain;Please confirm Footer.js wraps calls with footer scoping (e.g., cy.get('footer').within(...)).
1-1: Align class name with filename for clarityEither rename the file to BasePage.js or adjust the class/export to match the filename.
-class BasePage { +class BaseFooterPage { @@ -export default BasePage; +export default BaseFooterPage;Also applies to: 15-15
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
cypress/pages/BaseFooterPage.js(1 hunks)
🔇 Additional comments (1)
cypress/pages/BaseFooterPage.js (1)
1-15: LGTM: concise, reusable base utilitiesSimple, readable base with sensible defaults and Cypress chaining preserved.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
components/tools/ToolsCard.tsx (1)
203-207: Add noopener to external links opened in a new tabFor security (tabnabbing), include noopener alongside noreferrer on target='_blank' links.
Apply this diff:
- rel='noreferrer' + rel='noopener noreferrer' @@ - rel='noreferrer' + rel='noopener noreferrer' @@ - rel='noreferrer' + rel='noopener noreferrer' @@ - rel='noreferrer' + rel='noopener noreferrer'Also applies to: 219-223, 233-237, 251-255
🧹 Nitpick comments (6)
components/tools/ToolsCard.tsx (3)
67-71: Avoid stale state in delayed hover handlerssetTimeout closures capture a stale visible; use functional updates to avoid race conditions.
Apply this diff:
- onMouseEnter={() => - setTimeout(() => { - if (!visible.desc) setVisible({ ...visible, desc: true }); - }, 400) - } + onMouseEnter={() => + setTimeout(() => { + setVisible((prev) => (prev.desc ? prev : { ...prev, desc: true })); + }, 400) + } @@ - onMouseLeave={() => - setTimeout(() => { - if (visible.desc) setVisible({ ...visible, desc: false }); - }, 300) - } + onMouseLeave={() => + setTimeout(() => { + setVisible((prev) => (prev.desc ? { ...prev, desc: false } : prev)); + }, 300) + }Also applies to: 75-79
34-41: Recompute truncation on resize/content changeuseEffect([]) runs once; truncation can change with layout/resize. Observe the element size instead.
Apply this diff:
- useEffect(() => { - if (descriptionRef.current) { - setIsTruncated( - descriptionRef.current?.scrollHeight! > - descriptionRef.current?.clientHeight! - ); - } - }, []); + useEffect(() => { + const el = descriptionRef.current; + if (!el) return; + const compute = () => setIsTruncated(el.scrollHeight > el.clientHeight); + compute(); + const ro = new ResizeObserver(compute); + ro.observe(el); + return () => ro.disconnect(); + }, []);
146-151: Use stable keys instead of array indexPrefer item.name as the key to avoid reconciliation issues.
Apply this diff:
- <Tag - key={index} + <Tag + key={item.name} name={item.name} bgColor={item.color} borderColor={item.borderColor} /> @@ - <Tag - key={index} + <Tag + key={item.name} name={item.name} bgColor={item.color} borderColor={item.borderColor} />Also applies to: 173-178
components/tools/ToolsDashboard.tsx (3)
30-33: Remove LegacyRef casts by typing refs correctlyInitialize refs with null and pass them directly. Also guard with optional chaining where accessed.
Apply this diff:
- const filterRef = useRef<HTMLDivElement>(); // used to provide ref to the Filter menu and outside click close feature + const filterRef = useRef<HTMLDivElement | null>(null); // used to provide ref to the Filter menu and outside click close feature // used to provide ref to the Category menu and outside click close feature - const categoryRef = useRef<HTMLDivElement>(); + const categoryRef = useRef<HTMLDivElement | null>(null); @@ - if ( - openFilter && - filterRef.current && - !filterRef.current.contains(event.target as Node) - ) { + if (openFilter && filterRef.current && !filterRef.current.contains(event.target as Node)) { setOpenFilter(false); } @@ - if ( - openCategory && - categoryRef.current && - !categoryRef.current.contains(event.target as Node) - ) { + if (openCategory && categoryRef.current && !categoryRef.current.contains(event.target as Node)) { setopenCategory(false); } @@ - <div - className='relative h-auto w-full' - ref={filterRef as React.LegacyRef<HTMLDivElement>} - > + <div className='relative h-auto w/full' ref={filterRef}> @@ - <div - className='relative h-auto w/full' - ref={categoryRef as React.LegacyRef<HTMLDivElement>} - > + <div className='relative h-auto w/full' ref={categoryRef}>Also applies to: 225-228, 245-248, 45-49, 65-68
100-105: Avoid setState inside useMemo and derive flags insteadsetCheckToolsList is set within useMemo; side-effects inside useMemo are an anti-pattern. Derive a hasAny boolean from the computed list or move the update to a useEffect that depends on toolsList.
I can provide a refactor to return { toolsList, hasAny } from the memo and remove setCheckToolsList; want me to draft it?
Also applies to: 170-173, 212-218
290-296: Make “Clear Filters” a real button for a11yIt’s interactive; use a button with type='button' and aria-label.
- <div - className='mt-4 flex cursor-pointer items-center text-gray-600 hover:text-black' - onClick={clearFilters} - > + <button + type='button' + className='mt-4 flex items-center text-gray-600 hover:text-black' + onClick={clearFilters} + aria-label='Clear filters' + > <Cross /> <span className='ml-3'>Clear Filters</span> - </div> + </button>
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (4)
components/footer/FooterData.ts(1 hunks)components/tools/ToolsCard.tsx(12 hunks)components/tools/ToolsDashboard.tsx(13 hunks)cypress/footer.cy.js(1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2024-11-01T12:48:22.034Z
Learnt from: akshatnema
PR: asyncapi/website#3136
File: tests/fixtures/tools/automated-tools.json:8-9
Timestamp: 2024-11-01T12:48:22.034Z
Learning: In the `tests/fixtures/tools/automated-tools.json` file, the `language` field within the `filters` object can be either a string or an array. Both formats are acceptable and supported in the codebase.
Applied to files:
components/tools/ToolsDashboard.tsx
🧬 Code graph analysis (3)
cypress/footer.cy.js (2)
components/footer/Footer.tsx (1)
Footer(14-127)components/footer/FooterData.ts (4)
initiativeLinks(19-40)socialMediaData(42-67)newsLinks(69-74)footerMiscData(76-78)
components/tools/ToolsCard.tsx (1)
components/typography/Heading.tsx (1)
Heading(30-85)
components/tools/ToolsDashboard.tsx (1)
context/ToolFilterContext.tsx (1)
ToolFilterContext(12-18)
🪛 GitHub Actions: PR testing - if Node project
components/tools/ToolsCard.tsx
[error] 3-3: Prettier formatting issue detected in ToolsCard.tsx.
[error] 36-36: Prettier formatting issue detected in ToolsCard.tsx.
[error] 62-62: Prettier formatting issue detected in ToolsCard.tsx.
[error] 81-81: Prettier formatting issue detected in ToolsCard.tsx.
[error] 86-86: Prettier formatting issue detected in ToolsCard.tsx.
[error] 146-146: Prettier formatting issue detected in ToolsCard.tsx.
[error] 161-161: Prettier formatting issue detected in ToolsCard.tsx.
[error] 173-173: Prettier formatting issue detected in ToolsCard.tsx.
[error] 193-193: Prettier formatting issue detected in ToolsCard.tsx.
[error] 209-209: Prettier formatting issue detected in ToolsCard.tsx.
[error] 225-225: Prettier formatting issue detected in ToolsCard.tsx.
[error] 240-240: Prettier formatting issue detected in ToolsCard.tsx.
[error] 258-258: Prettier formatting issue detected in ToolsCard.tsx.
[error] 258-258: Prettier formatting issue detected in ToolsCard.tsx.
components/tools/ToolsDashboard.tsx
[error] 2-2: Prettier formatting issue detected in ToolsDashboard.tsx.
🔇 Additional comments (6)
components/tools/ToolsCard.tsx (1)
3-6: Fix Prettier violations to unblock CICI flags multiple Prettier issues on this file. Please run the formatter (e.g., pnpm lint --fix or npx prettier --write) to resolve them.
Also applies to: 36-41, 62-64, 81-83, 86-89, 146-151, 161-163, 173-178, 193-196, 209-213, 225-227, 240-244, 258-262
components/tools/ToolsDashboard.tsx (1)
2-9: Fix Prettier violationFormat the multiline React import to satisfy Prettier.
cypress/footer.cy.js (2)
1-7: Good: imports use correct casing/pathThe FooterData import matches filesystem casing, avoiding Linux CI resolution issues.
16-37: Solid, data-driven footer link checksIterating over shared FooterData keeps tests in sync with site data. Nice use of a page object to scope to the footer.
components/footer/FooterData.ts (2)
76-86: LGTM: shared footer data moduleCentralizing link data with typed exports is clean and test-friendly.
29-31: Fix broken “Brand” link (404)This URL 404s. Point to a stable path (repo root) to avoid broken footer links.
Apply this diff:
- url: 'https://github.com/asyncapi/brand/blob/master/brand-guidelines/README.md' + url: 'https://github.com/asyncapi/brand'
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
cypress/footer.cy.js (1)
11-27: Good use of source data to avoid duplication.These tests correctly import data from the source (
FooterData.ts) rather than duplicating it in fixtures, addressing the feedback from PR reviewers about avoiding double maintenance.Consider adding an assertion to verify the total count of links in each section matches expectations, ensuring no unexpected links are rendered:
it('verifies the initiative links in the footer', () => { cy.get('[data-testid="Footer-initiative-links"]').should('have.length', initiativeLinks.length); initiativeLinks.forEach(({ url, label }) => { footer.verifyFooterLink(url, label); }); });
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
components/tools/ToolsCard.tsx(1 hunks)components/tools/ToolsDashboard.tsx(3 hunks)cypress/footer.cy.js(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
- components/tools/ToolsCard.tsx
- components/tools/ToolsDashboard.tsx
🧰 Additional context used
🧬 Code graph analysis (1)
cypress/footer.cy.js (2)
components/footer/Footer.tsx (1)
Footer(14-127)components/footer/FooterData.ts (4)
initiativeLinks(19-40)socialMediaData(42-67)newsLinks(69-74)footerMiscData(76-78)
🔇 Additional comments (2)
cypress/footer.cy.js (2)
4-9: LGTM - Test setup follows Cypress best practices.The test suite setup correctly uses the Page Object Model pattern with a beforeEach hook to ensure each test starts with a clean page visit.
29-31: Verify the Netlify link test validates the image badge correctly.The test passes an empty string for the label parameter, which differs from other tests. Since the Netlify link renders as an image badge (see
Footer.tsxlines 113-120) rather than text, confirm that:
verifyFooterLinkwith an empty label correctly validates the image link- The alt text ('Deploys by Netlify') or other accessibility attributes are validated
If
verifyFooterLinkdoesn't handle image links appropriately, consider adding a dedicated test or updating the method to validate the image's presence and alt text:it('verifies the Netlify badge in the footer', () => { cy.get('a[href="https://netlify.com"]') .should('exist') .find('img[alt="Deploys by Netlify"]') .should('be.visible'); });
75ac772 to
45943ed
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
♻️ Duplicate comments (1)
components/footer/FooterData.ts (1)
29-31: Broken Brand link (duplicate issue).This link was already flagged in a previous review as returning 404 because
brand-guidelines/README.mddoes not exist on the master branch.
🧹 Nitpick comments (1)
components/footer/FooterData.ts (1)
4-17: Consolidate duplicate interfaces.
FooterLink,SocialMediaData, andNewsLinkare structurally identical (both haveurlandlabelfields). Consolidating them into a single interface reduces duplication and simplifies maintenance.Apply this diff to consolidate:
-export interface FooterLink { +export interface LinkData { url: string; label: string; } -export interface SocialMediaData { - url: string; - label: string; -} - -export interface NewsLink { - url: string; - label: string; -}Then update the type annotations:
-export const initiativeLinks: FooterLink[] = [ +export const initiativeLinks: LinkData[] = [ -export const socialMediaData: SocialMediaData[] = [ +export const socialMediaData: LinkData[] = [ -export const newsLinks: NewsLink[] = [ +export const newsLinks: LinkData[] = [
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
components/footer/FooterData.ts(1 hunks)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Test NodeJS PR - windows-latest
🔇 Additional comments (1)
components/footer/FooterData.ts (1)
1-3: LGTM! Clean data structure and centralization.The centralized approach eliminates the duplicate maintenance concern raised in the PR comments. The data arrays are well-organized, links are properly formatted, and the composite export using the spread operator correctly flattens the misc data properties into the top-level object.
Also applies to: 19-28, 32-74, 76-85
commit 785c358 Author: Abhishek <abhiifour@gmail.com> Date: Fri Dec 26 18:24:01 2025 +0530 fix: horizontal scrollbar appearing in Tools flyout menu (asyncapi#4653) Co-authored-by: abhi <abhiifour@gmail.com> Co-authored-by: Prince Rajpoot <prince.rajpoot.20@gmail.com> commit 6521774 Author: DuskWarden <pawar96sameer@gmail.com> Date: Fri Dec 26 12:38:06 2025 +0530 fix: remove deprecated AddThis script and styles (asyncapi#4781) Co-authored-by: DuskWarden <pawar96sameer@gmail.com> commit a2fae36 Author: Chan <bot+chan@asyncapi.io> Date: Thu Dec 25 01:45:34 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4772) commit e917b0d Author: Chan <bot+chan@asyncapi.io> Date: Tue Dec 23 14:23:54 2025 +0100 docs(generator): update latest generator documentation (asyncapi#4719) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> commit ced4c27 Author: Chan <bot+chan@asyncapi.io> Date: Tue Dec 23 14:16:40 2025 +0100 docs(generator): update latest generator documentation (asyncapi#4718) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 6676a43 Author: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Date: Tue Dec 23 15:02:03 2025 +0200 chore(blog): add last summary (asyncapi#4699) Co-authored-by: thulieblack <sibanda.thulie@gmail.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> Co-authored-by: Lukasz Gornicki <lpgornicki@gmail.com> commit 65c10bb Author: Vishvamsinh Vaghela <90895835+vishvamsinh28@users.noreply.github.com> Date: Mon Dec 22 10:19:06 2025 +0530 feat: replace bitly urls with netlify redirect (asyncapi#4647) Co-authored-by: Vishvamsinh Vaghela <vaghelavishvamsinh11111@gmail.com> Co-authored-by: Prince Rajpoot <prince.rajpoot.20@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> commit f604d92 Author: Chan <bot+chan@asyncapi.io> Date: Mon Dec 22 01:47:53 2025 +0100 chore: update tools.json (asyncapi#4754) commit 624747e Author: DuskWarden <pawar96sameer@gmail.com> Date: Sun Dec 21 22:35:40 2025 +0530 fix: prevent background scroll when roadmap modal is open (asyncapi#4710) Co-authored-by: DuskWarden <pawar96sameer@gmail.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> commit 52eca18 Author: Shriya Chauhan <78415084+Shriya-Chauhan@users.noreply.github.com> Date: Sun Dec 21 21:59:40 2025 +0530 fix: fixes the failing CI/CD test in .github/workflows/if-nodejs-pr-testing.yml across all platforms (asyncapi#4735) Co-authored-by: Shriya-Chauhan <auroralflower@gmail.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> commit 3a1ca24 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 19 01:45:53 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4742) commit 98637a0 Author: Chan <bot+chan@asyncapi.io> Date: Thu Dec 18 17:58:38 2025 +0100 docs(community): update latest community documentation (asyncapi#4733) commit a293c4f Author: Ashmit JaiSarita Gupta <43639341+devilkiller-ag@users.noreply.github.com> Date: Thu Dec 18 18:51:08 2025 +0530 feat: updated filters dropdown and created stories for it (asyncapi#3174) Co-authored-by: devilkiller-ag <ashmitgupta.official@gmail.com> Co-authored-by: asyncapi-bot <bot+chan@asyncapi.io> Co-authored-by: Rohit <108233235+TRohit20@users.noreply.github.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> Co-authored-by: Miles Porter <milesxporter@gmail.com> commit 1a97aff Author: Chan <bot+chan@asyncapi.io> Date: Thu Dec 18 10:23:59 2025 +0100 docs(community): update latest community documentation (asyncapi#4731) commit bc768aa Author: Chan <bot+chan@asyncapi.io> Date: Thu Dec 18 10:23:57 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4721) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 25a3892 Author: Chan <bot+chan@asyncapi.io> Date: Thu Dec 18 01:44:36 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4730) commit b927d5d Author: Chan <bot+chan@asyncapi.io> Date: Wed Dec 17 17:05:08 2025 +0100 docs(cli): update latest cli documentation (asyncapi#4728) commit 83e282a Author: Chan <bot+chan@asyncapi.io> Date: Tue Dec 16 06:03:54 2025 +0100 chore: update tools.json (asyncapi#4715) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 3c04219 Author: Chan <bot+chan@asyncapi.io> Date: Mon Dec 15 18:53:51 2025 +0100 docs(community): update latest community documentation (asyncapi#4716) commit 3d2ec88 Author: DuskWarden <pawar96sameer@gmail.com> Date: Mon Dec 15 09:46:16 2025 +0530 docs: fix broken community repository links (asyncapi#4600) Co-authored-by: DuskWarden <pawar96sameer@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Co-authored-by: Chan <bot+chan@asyncapi.io> Co-authored-by: Prince Rajpoot <prince.rajpoot.20@gmail.com> commit 9c3dcd6 Author: Chan <bot+chan@asyncapi.io> Date: Sat Dec 13 01:45:08 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4707) commit eeed68c Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 12 01:45:00 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4696) commit 1e63086 Author: Chan <bot+chan@asyncapi.io> Date: Mon Dec 8 01:47:51 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4695) commit f6d7df5 Author: Chan <bot+chan@asyncapi.io> Date: Mon Dec 8 01:47:46 2025 +0100 chore: update tools.json (asyncapi#4692) commit 0dafc8b Author: Souryavardhan singh <144201791+Sourya07@users.noreply.github.com> Date: Sun Dec 7 17:17:33 2025 +0530 fix: ensure unique TOC slugs for repeated headings(Examples) (asyncapi#4593) Co-authored-by: Sourya07 <singhsourya137@gmail.com> Co-authored-by: Sambhav Gupta <81870866+sambhavgupta0705@users.noreply.github.com> commit a056c20 Author: Varshitha Besthavemula <152318309+batchu5@users.noreply.github.com> Date: Sun Dec 7 13:47:47 2025 +0530 chore: add php, laravel and symphony in tage-color.ts (asyncapi#4667) Co-authored-by: Varshitha Besthavemula <varshithabesthavemula@gmail.com> commit a677dc6 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 17:52:47 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4665) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 4d06094 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 17:38:09 2025 +0100 docs(generator): update latest generator documentation (asyncapi#4623) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 127ac98 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 17:23:49 2025 +0100 ci: update of files from global .github repo (asyncapi#4612) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 56d5d41 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 17:15:48 2025 +0100 docs(community): update latest maintainers list (asyncapi#4666) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 3647eaa Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 17:05:44 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4679) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 962820d Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 16:58:33 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4633) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 7ad740c Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 16:20:16 2025 +0100 docs(community): update latest maintainers list (asyncapi#4678) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 222a622 Author: Chan <bot+chan@asyncapi.io> Date: Fri Dec 5 16:06:31 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4660) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit fea45f1 Author: Prince Rajpoot <prince.rajpoot.20@gmail.com> Date: Fri Dec 5 19:55:54 2025 +0530 chore: add Prince Rajpoot as codeowner (asyncapi#4628) commit 3fc64a4 Author: Chan <bot+chan@asyncapi.io> Date: Mon Dec 1 01:52:20 2025 +0100 chore: update tools.json (asyncapi#4654) commit 5f83885 Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 30 11:11:37 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4651) commit fea633b Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 30 11:11:35 2025 +0100 docs(community): update latest maintainers list (asyncapi#4650) commit 4094d22 Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 26 11:24:47 2025 +0100 docs(generator): update latest generator documentation (asyncapi#4622) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit ad3d012 Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 26 11:00:29 2025 +0100 docs(community): update latest maintainers list (asyncapi#4626) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 40b340f Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 26 09:58:18 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4637) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 0291d0b Author: Ashish Padhy <ashishpadhy1729@gmail.com> Date: Wed Nov 26 14:18:37 2025 +0530 chore(blog): publish postmortem on recent security breach (asyncapi#4640) Co-authored-by: Shurtu-gal <ashishpadhy1729@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> commit ddc2d87 Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 25 01:41:32 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4641) commit 7accc24 Author: Chan <bot+chan@asyncapi.io> Date: Mon Nov 24 01:46:56 2025 +0100 chore: update tools.json (asyncapi#4639) commit 33db13d Author: Chan <bot+chan@asyncapi.io> Date: Sat Nov 22 01:41:38 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4635) commit d39efdf Author: Chan <bot+chan@asyncapi.io> Date: Fri Nov 21 13:56:32 2025 +0100 docs(community): update latest maintainers list (asyncapi#4620) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 85ce754 Author: Chan <bot+chan@asyncapi.io> Date: Thu Nov 20 01:42:28 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4630) commit d9e34fc Author: Prince Rajpoot <prince.rajpoot.20@gmail.com> Date: Wed Nov 19 21:24:10 2025 +0530 migrate macOS version to macos-latest (asyncapi#4625) commit e63c6c3 Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 18 08:19:29 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4610) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit d861164 Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 18 07:42:50 2025 +0100 docs(generator): update latest generator documentation (asyncapi#4611) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 47a9d92 Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 18 01:42:54 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4618) commit 7d42caf Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon Nov 17 18:00:11 2025 +0100 chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 (asyncapi#4616) commit f0127ac Author: Chan <bot+chan@asyncapi.io> Date: Mon Nov 17 09:19:31 2025 +0100 docs(community): update latest maintainers list (asyncapi#4606) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit dbad9ab Author: Pottabathini Vivekananda <145771776+nandu-99@users.noreply.github.com> Date: Mon Nov 17 13:22:45 2025 +0530 chore: update Slack invite link (asyncapi#4597) Co-authored-by: Pottabathini Vivekananda <vivekananda.99666@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> commit 14f2093 Author: Chan <bot+chan@asyncapi.io> Date: Mon Nov 17 01:44:37 2025 +0100 chore: update tools.json (asyncapi#4609) commit 0e9faba Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 17:19:09 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4607) commit bd8cd1d Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 17:06:18 2025 +0100 docs(community): update latest maintainers list (asyncapi#4605) commit ace905f Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 16:55:27 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4604) commit 964b958 Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 16:55:23 2025 +0100 docs(community): update latest maintainers list (asyncapi#4603) commit 085e697 Author: Anushka Sharan <111284729+anushkaaaaaaaa@users.noreply.github.com> Date: Sun Nov 16 12:52:19 2025 +0530 test: add e2e tests for docs and tools pages (asyncapi#4210) * test: add e2e tests for docs and tools pages * fix: minor fixes * test: update e2e test files * test: small changes * fix: small changes * minor change * minor chabge * feat: implement base classes in e2e tests * fix: enhance link verification methods * fix: update tools data import path in E2E tests * feat: add comprehensive tools data to toolsData.json * chore: format JSON structure in docsSections.json for consistency * chore: remove Glee section from docsSections.json * chore: update tools and docs navigation methods in HomePage class * refactor: replace verifyConceptSection with goToConceptsSection for consistency * refactor: enhance page verification methods in ToolsPage * refactor: update documentation links and headings in docsSections.json * refactor: improve link verification logic in ToolsPage * Add newline at end of meetings.json Fix missing newline at end of meetings.json file. * Fix JSON formatting in newsroom_videos.json * chore: add newline at the end of BasePageTools.js * docs: add Community Travel Funding guidelines * docs: update links to AsyncAPI tool documentation * docs: add manual tools building functionality and related tests * remve line * add line * smhtg --------- Co-authored-by: Sambhav Gupta <81870866+sambhavgupta0705@users.noreply.github.com> Co-authored-by: Rohit <108233235+TRohit20@users.noreply.github.com> commit b9c3673 Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 07:06:09 2025 +0100 chore: update tools.json (asyncapi#4562) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit fe60602 Author: Chan <bot+chan@asyncapi.io> Date: Sun Nov 16 01:45:57 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4596) commit 9a53cfa Author: DuskWarden <pawar96sameer@gmail.com> Date: Sat Nov 15 19:58:09 2025 +0530 docs: fix broken git-workflow.md links across repository (asyncapi#4585) * docs: fix broken git-workflow.md links Updated links to point to new location after community repo restructuring * revert: remove workflow file change as it is centrally managed --------- Co-authored-by: Chan <bot+chan@asyncapi.io> commit 5bfca09 Author: Chan <bot+chan@asyncapi.io> Date: Sat Nov 15 01:43:23 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4590) commit b87dd1b Author: Chan <bot+chan@asyncapi.io> Date: Fri Nov 14 01:45:37 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4584) commit 8cba652 Author: Chan <bot+chan@asyncapi.io> Date: Thu Nov 13 01:44:26 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4581) commit 722963b Author: Souryavardhan singh <144201791+Sourya07@users.noreply.github.com> Date: Wed Nov 12 21:09:00 2025 +0530 docs: broken link to new-tool-documentation.md in Tools documentation (asyncapi#4542) Co-authored-by: Sourya07 <singhsourya137@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> commit 4d0d969 Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 12 07:32:39 2025 +0100 docs(community): update latest community documentation (asyncapi#4574) commit 6aaecb1 Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 12 01:43:52 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4573) commit 406151e Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 11 01:44:03 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4568) commit be72df8 Author: Chan <bot+chan@asyncapi.io> Date: Mon Nov 10 01:47:43 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4563) commit cecd342 Author: Prince Rajpoot <prince.rajpoot.20@gmail.com> Date: Sun Nov 9 13:14:15 2025 +0530 feat: enable tools view regeneration at build time (asyncapi#4511) * Add support for tools view regeneration at PR level for manual tools * minor formatting change * minor improvement * minor change * Added test cases * minor improvement * added more assertions commit 445e7c1 Author: Anushka Sharan <111284729+anushkaaaaaaaa@users.noreply.github.com> Date: Fri Nov 7 21:58:31 2025 +0530 test: add E2E tests for home page, header and footer components (asyncapi#4194) * feat: add cypress for e2e testing * feat: add cypress for e2e testing * feat: demo cypress test * feat: header e2e tests * feat: footer e2e tests * feat: add e2e tests for homepage (and other regarding pages) * test: add test for docs button * fix: minor e2e tests fixes * ci: add e2e tests workflow * fix: e2e tests fix * fix: minor fixes * ci: minor fix * fix: minor fix * fix: another fix * ci: another minor fix * fix: final fix * fix: failing test fix * test: update tests to get rid of hardcoded links * fix: replace direct Cypress commands with homePage methods * ci: minor fix * fix: minor fix * ci: minor fix * ci: update dependencies * fix: small change * test: remove files from tsconfig * feat: implement base classes for each test file * fix: small change * fix: small change * fix: changes * feat: add centralized footer data and update footer validation tests * small change in footer.cy.js * refactor: simplify visit method in BasePage class * fix: correct import path for footer data in footer tests * refactor: fix lint issues in ToolsCard and ToolsDashboard components * refactor: revert changes in ToolsCard and ToolsDashboard components * small change * small change * fix(footer): update email contact in news links --------- Co-authored-by: Sambhav Gupta <81870866+sambhavgupta0705@users.noreply.github.com> Co-authored-by: Rohit <108233235+TRohit20@users.noreply.github.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> commit 167fbb9 Author: Chan <bot+chan@asyncapi.io> Date: Fri Nov 7 01:45:16 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4554) commit b5a86b7 Author: Chan <bot+chan@asyncapi.io> Date: Thu Nov 6 01:42:44 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4541) commit 4c5ecac Author: Chan <bot+chan@asyncapi.io> Date: Wed Nov 5 11:41:23 2025 +0100 docs(community): update latest community documentation (asyncapi#4539) commit 8688dc0 Author: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Date: Wed Nov 5 11:22:05 2025 +0200 chore(blog): add October community summary (asyncapi#4512) Co-authored-by: thulieblack <sibanda.thulie@gmail.com> commit b4bdd8b Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 4 11:38:41 2025 +0100 docs(community): update latest Board and TSC members list (asyncapi#4532) commit 11414cc Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 4 11:38:37 2025 +0100 docs(community): update latest maintainers list (asyncapi#4531) commit 005177e Author: Chan <bot+chan@asyncapi.io> Date: Tue Nov 4 01:42:03 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4528) commit 9611f42 Author: Chan <bot+chan@asyncapi.io> Date: Mon Nov 3 01:46:28 2025 +0100 chore: update tools.json (asyncapi#4525) commit 053e5a6 Author: Chan <bot+chan@asyncapi.io> Date: Thu Oct 30 01:43:09 2025 +0100 chore: update meetings.json and newsrooom_videos.json (asyncapi#4516) commit 04921b1 Author: Lukasz Gornicki <lpgornicki@gmail.com> Date: Tue Oct 28 15:36:16 2025 +0100 chore: add content with case studies (asyncapi#4486) Co-authored-by: Lukasz Gornicki <lpgornicki@gmail.com> Co-authored-by: Ansh Goyal <anshgoyal1704@gmail.com> commit 6287929 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 27 10:52:50 2025 +0100 docs(cli): update latest cli documentation (asyncapi#4510) commit e398ae7 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 27 09:39:38 2025 +0100 ci: update LICENSE and NOTICE files from global .github repo (asyncapi#4509) commit 4788d4b Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 27 01:45:31 2025 +0100 chore: update tools.json (asyncapi#4508) commit d3c31cc Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 24 13:07:33 2025 +0200 docs(cli): update latest cli documentation (asyncapi#4504) commit a57da1f Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 24 02:40:29 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4502) commit 304d2ae Author: Chan <bot+chan@asyncapi.io> Date: Wed Oct 22 02:42:59 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4497) commit 6c974fc Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 21 13:26:10 2025 +0200 docs(community): update latest community documentation (asyncapi#4493) Co-authored-by: asyncapi-bot <info@asyncapi.io> commit b1787a0 Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 21 02:41:49 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4492) commit 5733a74 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 20 02:45:33 2025 +0200 chore: update tools.json (asyncapi#4490) commit 841a1d3 Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 17 06:12:55 2025 +0200 ci: update of files from global .github repo (asyncapi#4475) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit db754f6 Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 17 02:41:45 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4487) commit 9de49c1 Author: Chan <bot+chan@asyncapi.io> Date: Thu Oct 16 02:41:23 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4483) commit 6757477 Author: Chan <bot+chan@asyncapi.io> Date: Wed Oct 15 10:07:12 2025 +0200 docs(community): update latest tsc members list (asyncapi#4479) commit 568740e Author: Chan <bot+chan@asyncapi.io> Date: Wed Oct 15 02:42:05 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4477) commit f33b0de Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 14 16:34:12 2025 +0200 docs(community): update latest Board and TSC members list (asyncapi#4472) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 6a18edf Author: Sarthak Karode <sarthakkarodework@gmail.com> Date: Tue Oct 14 19:57:20 2025 +0530 docs: remove glee folder and update introduction-to-glee-a-spec-first-framework.md (asyncapi#4358) Co-authored-by: sarthakKarode <sarthakkarode@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> commit b215375 Author: Zbigniew Malcherczyk <zmalcherczyk@gmail.com> Date: Tue Oct 14 14:29:44 2025 +0200 chore(blog): add TransferGo <> AsyncAPI Blog Post (asyncapi#4434) Co-authored-by: Ferror <zmalcherczyk@gmail.com> Co-authored-by: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Co-authored-by: Lukasz Gornicki <lpgornicki@gmail.com> commit 7480244 Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 14 14:18:15 2025 +0200 docs(community): update latest community documentation (asyncapi#4474) commit 7058fd5 Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 14 09:40:10 2025 +0200 docs(community): update latest maintainers list (asyncapi#4471) commit e18da3b Author: Chan <bot+chan@asyncapi.io> Date: Tue Oct 14 08:42:29 2025 +0200 docs(community): update latest maintainers list (asyncapi#4470) commit ac7e38b Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 13 18:04:36 2025 +0200 docs(community): update latest Board members list (asyncapi#4469) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 1e3e8e8 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 13 14:51:16 2025 +0200 docs(community): update latest tsc members list (asyncapi#4468) commit 8560539 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 13 02:43:38 2025 +0200 chore: update tools.json (asyncapi#4467) commit 4fd7abd Author: Chan <bot+chan@asyncapi.io> Date: Sun Oct 12 02:42:39 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4465) commit 19e3c34 Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 10 18:11:58 2025 +0200 docs(community): update latest community documentation (asyncapi#4462) commit 4b2284c Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 10 02:42:27 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4461) commit 7affdb1 Author: Pastukhov Nikita <diementros@yandex.ru> Date: Fri Oct 10 02:45:03 2025 +0300 docs: fix FastStream tools dead links (asyncapi#4458) * docs: update FastStream tools link * docs: update FastStream tools links * chore: remove empty line * Update tools.json * Update tools-manual.json --------- Co-authored-by: Sambhav Gupta <81870866+sambhavgupta0705@users.noreply.github.com> commit 55d08d5 Author: Chan <bot+chan@asyncapi.io> Date: Mon Oct 6 02:41:28 2025 +0200 chore: update tools.json (asyncapi#4459) commit 3b4454f Author: V Thulisile Sibanda <66913810+thulieblack@users.noreply.github.com> Date: Fri Oct 3 11:45:21 2025 +0200 chore(blog): add the september summary (asyncapi#4438) Co-authored-by: thulieblack <sibanda.thulie@gmail.com> commit 2e4022c Author: Chan <bot+chan@asyncapi.io> Date: Fri Oct 3 02:39:43 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4449) commit bfda003 Author: Chan <bot+chan@asyncapi.io> Date: Thu Oct 2 17:10:30 2025 +0200 docs(community): update latest community documentation (asyncapi#4444) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit dc85424 Author: Fran Méndez <fmvilas@gmail.com> Date: Thu Oct 2 16:43:56 2025 +0200 chore: replace press email with info email address (asyncapi#4443) Co-authored-by: Fran Méndez <fmvilas@gmail.com> Co-authored-by: Sambhav Gupta <81870866+sambhavgupta0705@users.noreply.github.com> commit 75cd925 Author: Chan <bot+chan@asyncapi.io> Date: Thu Oct 2 02:42:15 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4442) commit 960a6b5 Author: Chan <bot+chan@asyncapi.io> Date: Wed Oct 1 21:38:20 2025 +0200 chore: update meetings.json, newsrooom_videos.json and dashboard.json (asyncapi#4426) Co-authored-by: asyncapi-bot <info@asyncapi.io> Co-authored-by: Eve <bot+eve@asyncapi.io> commit 4234dda Author: Chan <bot+chan@asyncapi.io> Date: Wed Oct 1 02:46:05 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4441) commit d4a1175 Author: Chan <bot+chan@asyncapi.io> Date: Tue Sep 30 02:43:19 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4440) commit 231498d Author: Chan <bot+chan@asyncapi.io> Date: Mon Sep 29 02:42:47 2025 +0200 chore: update tools.json (asyncapi#4439) commit 42eac67 Author: Chan <bot+chan@asyncapi.io> Date: Sun Sep 28 02:43:54 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4437) commit 0be788f Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri Sep 26 21:58:26 2025 +0200 chore(deps): bump tar-fs (asyncapi#4436) commit c19543b Author: Chan <bot+chan@asyncapi.io> Date: Fri Sep 26 02:39:08 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4435) commit 9a8c037 Author: Chan <bot+chan@asyncapi.io> Date: Thu Sep 25 12:54:38 2025 +0200 docs(community): update latest community documentation (asyncapi#4432) commit 54b7241 Author: Zbigniew Malcherczyk <zmalcherczyk@gmail.com> Date: Thu Sep 25 09:55:27 2025 +0200 chore: initial TransferGo CaseStudy (asyncapi#4409) Co-authored-by: Ferror <zmalcherczyk@gmail.com> Co-authored-by: Lukasz Gornicki <lpgornicki@gmail.com> commit 78769a8 Author: Chan <bot+chan@asyncapi.io> Date: Wed Sep 24 02:40:34 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4431) commit 1ac8db4 Author: Chan <bot+chan@asyncapi.io> Date: Tue Sep 23 02:40:29 2025 +0200 chore: update meetings.json and newsrooom_videos.json (asyncapi#4430) commit 9791f0d Author: Chan <bot+chan@asyncapi.io> Date: Mon Sep 22 02:43:56 2025 +0200 chore: update tools.json (asyncapi#4429)
Description:
I have added E2E tests using Cypress for the homepage, header and footer components to ensure proper functionality and rendering. These tests cover key aspects such as:
Changes:
Related Issues-:
Summary by CodeRabbit