Skip to content
Merged
Show file tree
Hide file tree
Changes from 30 commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
dbca7de
docs: Add technical planning for VIBE-317
github-actions[bot] Jan 9, 2026
04216c7
Add RCJ list types
KianKwa Jan 14, 2026
ca0f8e8
Update package name
KianKwa Jan 14, 2026
2cd3c72
Renamed files
KianKwa Jan 14, 2026
172ced8
Tidy up
KianKwa Jan 14, 2026
36a3604
refactoring
KianKwa Jan 14, 2026
c8830d1
refactoring
KianKwa Jan 14, 2026
008ab0e
Combine list search scripts
KianKwa Jan 14, 2026
994a103
Update nunjucks file locations
KianKwa Jan 14, 2026
a0baa40
Refactoring
KianKwa Jan 15, 2026
25d51c7
Add unit tests
KianKwa Jan 15, 2026
7c287bb
Update Welsh text to be the same as current CaTH
KianKwa Jan 15, 2026
caa5d48
Update list type Welsh friendly names
KianKwa Jan 15, 2026
fe03ebb
Add E2E tests
KianKwa Jan 15, 2026
95a0ff0
Fixed failing unit tests
KianKwa Jan 15, 2026
a88a01b
Fixed failing unit tests
KianKwa Jan 15, 2026
b3c2a52
Fixed failing unit tests
KianKwa Jan 15, 2026
f7a045a
Fixed renderer code duplications
KianKwa Jan 15, 2026
f4e5681
Update Welsh translation
KianKwa Jan 15, 2026
9c2615d
Move duplicated code into common file
KianKwa Jan 15, 2026
df1e8c2
Move duplicated code into common file
KianKwa Jan 15, 2026
c1d2e1a
Move duplicated code into common file
KianKwa Jan 15, 2026
de2f3b6
Code review fixes
KianKwa Jan 21, 2026
6b9b7e8
Merge remote-tracking branch 'origin/master' into feature/VIBE-317-th…
KianKwa Jan 21, 2026
744128e
Fix failing tests and security vuln
KianKwa Jan 21, 2026
b1785ca
Remove test comments
KianKwa Jan 21, 2026
d7cf663
Merge remote-tracking branch 'origin/master' into feature/VIBE-317-th…
KianKwa Jan 28, 2026
24c6822
Fixed security vuln
KianKwa Jan 28, 2026
ed58d08
Merge remote-tracking branch 'origin/master' into feature/VIBE-317-th…
KianKwa Jan 30, 2026
d66d88b
remove duplicated function
KianKwa Jan 30, 2026
7ce8083
Fixed failing unit test
KianKwa Jan 30, 2026
d4664a2
Fixed failing unit test
KianKwa Jan 30, 2026
bf5c155
Merge branch 'refs/heads/master' into feature/VIBE-317-the-rcj-hearin…
KianKwa Feb 12, 2026
d027041
Update dependency
KianKwa Feb 12, 2026
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
1 change: 1 addition & 0 deletions apps/web/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"@hmcts/admin-pages": "workspace:*",
"@hmcts/cloud-native-platform": "workspace:*",
"@hmcts/cookie-manager": "1.1.0",
"@hmcts/list-types-common": "workspace:*",
"@hmcts/location": "workspace:*",
"@hmcts/postgres": "workspace:*",
"@hmcts/public-pages": "workspace:*",
Expand Down
27 changes: 22 additions & 5 deletions apps/web/src/app.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,26 @@ vi.mock("@hmcts/civil-and-family-daily-cause-list/config", () => ({
pageRoutes: { path: "/mock/civil-family/pages" }
}));

vi.mock("@hmcts/rcj-standard-daily-cause-list/config", () => ({
moduleRoot: "/mock/rcj-standard",
pageRoutes: { path: "/mock/rcj-standard/pages" }
}));

vi.mock("@hmcts/london-administrative-court-daily-cause-list/config", () => ({
moduleRoot: "/mock/london-admin",
pageRoutes: { path: "/mock/london-admin/pages" }
}));

vi.mock("@hmcts/court-of-appeal-civil-daily-cause-list/config", () => ({
moduleRoot: "/mock/civil-appeal",
pageRoutes: { path: "/mock/civil-appeal/pages" }
}));

vi.mock("@hmcts/administrative-court-daily-cause-list/config", () => ({
moduleRoot: "/mock/admin-court",
pageRoutes: { path: "/mock/admin-court/pages" }
}));

vi.mock("@hmcts/list-types-common/config", () => ({
moduleRoot: "/mock/list-types-common"
}));
Expand Down Expand Up @@ -187,16 +207,13 @@ describe("Web Application", () => {

it("should register public pages routes", async () => {
const { createSimpleRouter } = await import("@hmcts/simple-router");
// Should be called 12 times: location API routes, public pages API routes, system-admin API routes, civil-family-cause-list pages, care-standards-tribunal pages, web pages, auth routes, public pages, verified pages, system-admin pages, admin routes
expect(createSimpleRouter).toHaveBeenCalledTimes(11);
expect(createSimpleRouter).toHaveBeenCalledTimes(15);
});

it("should register system-admin page routes", async () => {
const { createSimpleRouter } = await import("@hmcts/simple-router");
const calls = vi.mocked(createSimpleRouter).mock.calls;

// Verify system-admin routes were registered (should have 11 total calls)
expect(calls.length).toBeGreaterThanOrEqual(11);
expect(calls.length).toBeGreaterThanOrEqual(16);
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Resolved
});

it("should configure error handlers at the end", async () => {
Expand Down
12 changes: 12 additions & 0 deletions apps/web/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import path from "node:path";
import { fileURLToPath } from "node:url";
import "@hmcts/web-core"; // Import for Express type augmentation
import { fileUploadRoutes as adminFileUploadRoutes, moduleRoot as adminModuleRoot, pageRoutes as adminRoutes } from "@hmcts/admin-pages/config";
import { moduleRoot as adminCourtModuleRoot, pageRoutes as adminCourtRoutes } from "@hmcts/administrative-court-daily-cause-list/config";
import { authNavigationMiddleware, cftCallbackHandler, configurePassport, ssoCallbackHandler } from "@hmcts/auth";
import { moduleRoot as authModuleRoot, pageRoutes as authRoutes } from "@hmcts/auth/config";
import {
Expand All @@ -10,14 +11,17 @@ import {
} from "@hmcts/care-standards-tribunal-weekly-hearing-list/config";
import { moduleRoot as civilFamilyCauseListModuleRoot, pageRoutes as civilFamilyCauseListRoutes } from "@hmcts/civil-and-family-daily-cause-list/config";
import { configurePropertiesVolume, healthcheck, monitoringMiddleware } from "@hmcts/cloud-native-platform";
import { moduleRoot as civilAppealModuleRoot, pageRoutes as civilAppealRoutes } from "@hmcts/court-of-appeal-civil-daily-cause-list/config";
import { moduleRoot as listTypesCommonModuleRoot } from "@hmcts/list-types-common/config";
import { apiRoutes as locationApiRoutes } from "@hmcts/location/config";
import { moduleRoot as londonAdminModuleRoot, pageRoutes as londonAdminRoutes } from "@hmcts/london-administrative-court-daily-cause-list/config";
import {
apiRoutes as publicPagesApiRoutes,
fileUploadRoutes as publicPagesFileUploadRoutes,
moduleRoot as publicPagesModuleRoot,
pageRoutes as publicPagesRoutes
} from "@hmcts/public-pages/config";
import { moduleRoot as rcjStandardModuleRoot, pageRoutes as rcjStandardRoutes } from "@hmcts/rcj-standard-daily-cause-list/config";
import { createSimpleRouter } from "@hmcts/simple-router";
import {
apiRoutes as systemAdminApiRoutes,
Expand Down Expand Up @@ -77,6 +81,10 @@ export async function createApp(): Promise<Express> {
listTypesCommonModuleRoot,
careStandardsTribunalModuleRoot,
civilFamilyCauseListModuleRoot,
rcjStandardModuleRoot,
londonAdminModuleRoot,
civilAppealModuleRoot,
adminCourtModuleRoot,
systemAdminModuleRoot,
publicPagesModuleRoot,
verifiedPagesModuleRoot
Expand Down Expand Up @@ -123,6 +131,10 @@ export async function createApp(): Promise<Express> {
// Register list type routes first to ensure proper route matching
app.use(await createSimpleRouter(civilFamilyCauseListRoutes));
app.use(await createSimpleRouter(careStandardsTribunalRoutes));
app.use(await createSimpleRouter(rcjStandardRoutes));
app.use(await createSimpleRouter(londonAdminRoutes));
app.use(await createSimpleRouter(civilAppealRoutes));
app.use(await createSimpleRouter(adminCourtRoutes));

app.use(await createSimpleRouter({ path: `${__dirname}/pages` }, pageRoutes));
app.use(await createSimpleRouter(authRoutes, pageRoutes));
Expand Down
4 changes: 2 additions & 2 deletions apps/web/src/assets/js/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ vi.mock("@hmcts/web-core/src/assets/js/search-autocomplete.js", () => ({
initSearchAutocomplete: vi.fn(() => Promise.resolve())
}));

vi.mock("@hmcts/web-core/src/assets/js/search-highlight.js", () => ({
initSearchHighlight: vi.fn()
vi.mock("@hmcts/list-types-common/src/assets/js/table-search.js", () => ({
initTableSearch: vi.fn()
}));

vi.mock("govuk-frontend", () => ({
Expand Down
6 changes: 3 additions & 3 deletions apps/web/src/assets/js/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import cookieManager from "@hmcts/cookie-manager";
import { initTableSearch } from "@hmcts/list-types-common/src/assets/js/table-search.js";
import { initBackToTop } from "@hmcts/web-core/src/assets/js/back-to-top.js";
import { initFilterPanel } from "@hmcts/web-core/src/assets/js/filter-panel.js";
import { initSearchAutocomplete } from "@hmcts/web-core/src/assets/js/search-autocomplete.js";
import { initSearchHighlight } from "@hmcts/web-core/src/assets/js/search-highlight.js";
import { initAll } from "govuk-frontend";

initAll();
Expand All @@ -15,15 +15,15 @@ if (document.readyState === "loading") {
});
initFilterPanel();
initBackToTop();
initSearchHighlight();
initTableSearch();
});
} else {
void initSearchAutocomplete().catch((error) => {
console.error("Error initializing search autocomplete:", error);
});
initFilterPanel();
initBackToTop();
initSearchHighlight();
initTableSearch();
}

const config = {
Expand Down
10 changes: 9 additions & 1 deletion apps/web/vite.build.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import path from "node:path";
import { fileURLToPath } from "node:url";
import { assets as adminPagesAssets } from "@hmcts/admin-pages/config";
import { assets as listTypesCommonAssets } from "@hmcts/list-types-common/config";
import { assets as systemAdminAssets } from "@hmcts/system-admin-pages/config";
import { assets as verifiedPagesAssets } from "@hmcts/verified-pages/config";
import { createBaseViteConfig } from "@hmcts/web-core";
Expand All @@ -11,7 +12,14 @@ import { viteStaticCopy } from "vite-plugin-static-copy";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

const baseConfig = createBaseViteConfig([path.join(__dirname, "src", "assets"), webCoreAssets, systemAdminAssets, verifiedPagesAssets, adminPagesAssets]);
const baseConfig = createBaseViteConfig([
path.join(__dirname, "src", "assets"),
webCoreAssets,
systemAdminAssets,
verifiedPagesAssets,
adminPagesAssets,
listTypesCommonAssets
]);

export default defineConfig(
mergeConfig(baseConfig, {
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added docs/tickets/VIBE-317/RCJ mapping.pdf
Binary file not shown.
Binary file not shown.
Loading
Loading