diff --git a/frontend/__tests__/unit/components/Footer.test.tsx b/frontend/__tests__/unit/components/Footer.test.tsx
index 234daa3553..6a9bd10f01 100644
--- a/frontend/__tests__/unit/components/Footer.test.tsx
+++ b/frontend/__tests__/unit/components/Footer.test.tsx
@@ -275,6 +275,57 @@ describe('Footer', () => {
})
})
+ describe('Version Link Behavior', () => {
+ let originalEnvironment: string
+ let originalReleaseVersion: string
+ let envModule: typeof import('utils/env.client')
+
+ beforeEach(() => {
+ jest.clearAllMocks()
+ envModule = jest.requireMock('utils/env.client')
+ originalEnvironment = envModule.ENVIRONMENT
+ originalReleaseVersion = envModule.RELEASE_VERSION
+ })
+
+ afterEach(() => {
+ if (envModule) {
+ envModule.ENVIRONMENT = originalEnvironment
+ envModule.RELEASE_VERSION = originalReleaseVersion
+ }
+ })
+
+ test('renders version as commit link in staging environment', () => {
+ envModule.ENVIRONMENT = 'staging'
+ envModule.RELEASE_VERSION = '24.2.10-12c25c5'
+
+ const { container } = render()
+ const versionLink = container.querySelector('a[href*="commit"]')
+
+ expect(versionLink).toBeInTheDocument()
+ expect(versionLink).toHaveAttribute('href', 'https://github.com/OWASP/Nest/commit/12c25c5')
+ expect(versionLink).toHaveAttribute('target', '_blank')
+ expect(versionLink).toHaveAttribute('rel', 'noopener noreferrer')
+ expect(versionLink).toHaveTextContent('v24.2.10-12c25c5')
+ })
+
+ test('renders version as release tag link in production environment', () => {
+ envModule.ENVIRONMENT = 'production'
+ envModule.RELEASE_VERSION = '1.2.3'
+
+ const { container } = render()
+ const versionLink = container.querySelector('a[href*="releases"]')
+
+ expect(versionLink).toBeInTheDocument()
+ expect(versionLink).toHaveAttribute(
+ 'href',
+ 'https://github.com/OWASP/Nest/releases/tag/1.2.3'
+ )
+ expect(versionLink).toHaveAttribute('target', '_blank')
+ expect(versionLink).toHaveAttribute('rel', 'noopener noreferrer')
+ expect(versionLink).toHaveTextContent('v1.2.3')
+ })
+ })
+
describe('Accessibility', () => {
test('has correct ARIA attributes on buttons', () => {
renderFooter()
diff --git a/frontend/src/components/Footer.tsx b/frontend/src/components/Footer.tsx
index 3e28c522cc..e656122bbf 100644
--- a/frontend/src/components/Footer.tsx
+++ b/frontend/src/components/Footer.tsx
@@ -93,18 +93,18 @@ export default function Footer() {
{RELEASE_VERSION && (
- {ENVIRONMENT === 'production' ? (
-
- v{RELEASE_VERSION}
-
- ) : (
+
v{RELEASE_VERSION}
- )}
+
)}