fix for bug#6
Build & Push / Build & Push Docker Image (push) Failing after 2m42s

This commit is contained in:
root
2026-07-19 23:20:51 -04:00
parent a010ad6811
commit 9c526af996
5 changed files with 20 additions and 15 deletions
-10
View File
@@ -75,16 +75,6 @@ const nextConfig = {
},
async redirects() {
return [
{
source: `${DASHBOARD_BASE_PATH}/:path*`,
destination: '/:path*',
permanent: false,
},
{
source: DASHBOARD_BASE_PATH,
destination: '/',
permanent: false,
},
{
source: '/',
destination: DASHBOARD_BASE_PATH,
@@ -247,7 +247,7 @@ export default function SubscriptionPage() {
.catch((err: any) => {
if (cancelled) return
if (err?.statusCode === 401) {
router.replace('/sign-in?redirect=%2Fsubscription')
window.location.replace('/dashboard/sign-in?redirect=%2Fdashboard%2Fsubscription')
return
}
if (err?.statusCode === 403) {
@@ -109,8 +109,8 @@ describe('DashboardAccessGuard route helpers', () => {
})
it('builds sign-in redirects with public dashboard return paths', () => {
expect(buildSignInRedirect('/reservations')).toBe('/sign-in?redirect=%2Fdashboard%2Freservations')
expect(buildSignInRedirect('/dashboard/fleet')).toBe('/sign-in?redirect=%2Fdashboard%2Ffleet')
expect(buildSignInRedirect('/reservations')).toBe('/dashboard/sign-in?redirect=%2Fdashboard%2Freservations')
expect(buildSignInRedirect('/dashboard/fleet')).toBe('/dashboard/sign-in?redirect=%2Fdashboard%2Ffleet')
})
it('treats subscription as an owner-only recovery route independent of menu registration', () => {
@@ -93,7 +93,7 @@ export function resolveAccessRedirect(currentPath: string, allowedRoutes: string
export function buildSignInRedirect(currentPath: string) {
const params = new URLSearchParams()
params.set('redirect', toPublicDashboardPath(currentPath))
return `/sign-in?${params.toString()}`
return `${toPublicDashboardPath('/sign-in')}?${params.toString()}`
}
export default function DashboardAccessGuard({ children }: { children: React.ReactNode }) {
@@ -147,7 +147,7 @@ export default function DashboardAccessGuard({ children }: { children: React.Rea
if (error?.statusCode === 401) {
const target = buildSignInRedirect(currentPath)
if (target !== currentPath) router.replace(target)
if (target !== toPublicDashboardPath(currentPath)) window.location.replace(target)
return
}
+15
View File
@@ -5,6 +5,21 @@ import { describe, expect, it } from 'vitest'
const require = createRequire(import.meta.url)
describe('dashboard next config', () => {
it('keeps the public dashboard base path canonical after login', async () => {
const nextConfig = require('../next.config.js')
const redirects = await nextConfig.redirects()
expect(redirects).toEqual([
{
source: '/',
destination: '/dashboard',
permanent: false,
basePath: false,
},
])
})
it('allows generated static media assets to be loaded across local app origins', async () => {
const nextConfig = require('../next.config.js')