diff --git a/bin/js-contract-check.sh b/bin/js-contract-check.sh index 3c56b83..644c891 100755 --- a/bin/js-contract-check.sh +++ b/bin/js-contract-check.sh @@ -37,6 +37,14 @@ else ok "Frontend JS uses centralized app-http (except app-http/app-telemetry infrastructure)" fi +list_module_hits="$(rg -n "initStandardListPage\\(" web/js/pages modules/*/web/js/pages -g '*.js' || true)" +if [[ -n "${list_module_hits}" ]]; then + fail "Legacy initStandardListPage(...) usage found in page modules (use createListPageModule):" + echo "${list_module_hits}" >&2 +else + ok "List page modules use createListPageModule (no direct initStandardListPage calls)" +fi + runtime_files=( "modules/helpdesk/web/js/helpdesk-detail.js" "modules/helpdesk/web/js/helpdesk-domain-detail.js" diff --git a/tests/Architecture/ListTemplateContractTest.php b/tests/Architecture/ListTemplateContractTest.php index 56a36d2..fa68397 100644 --- a/tests/Architecture/ListTemplateContractTest.php +++ b/tests/Architecture/ListTemplateContractTest.php @@ -20,10 +20,10 @@ class ListTemplateContractTest extends TestCase $file . ' does not render toolbar directly and does not include shared list-filters partial.' ); $this->assertTrue( - str_contains($moduleContent, 'initStandardListPage(') - || str_contains($moduleContent, 'createListPageModule('), - $file . ' does not initialize list module via initStandardListPage/createListPageModule.' + str_contains($moduleContent, 'createListPageModule('), + $file . ' does not initialize list module via createListPageModule.' ); + $this->assertStringNotContainsString('initStandardListPage(', $moduleContent, $file); $this->assertStringNotContainsString('gridFiltersFromSchema(', $content, $file); $this->assertSame(0, preg_match('/