@@ -12,13 +12,40 @@ test("the public website is a separate build target", () => {
1212 const rootPackage = json ( "package.json" ) ;
1313 const websitePackage = json ( "website/package.json" ) ;
1414 assert . equal ( existsSync ( resolve ( root , "website/.openai/hosting.json" ) ) , true ) ;
15+ assert . equal ( existsSync ( resolve ( root , "website/build/sites-vite-plugin.ts" ) ) , true ) ;
1516 assert . equal ( websitePackage . name , "ross-ontario" ) ;
1617 assert . match ( rootPackage . scripts [ "install:all" ] , / - - p r e f i x w e b s i t e / ) ;
1718 assert . match ( rootPackage . scripts . build , / b u i l d : w e b s i t e / ) ;
1819 assert . match ( rootPackage . scripts . lint , / l i n t : w e b s i t e / ) ;
1920 assert . match ( rootPackage . scripts . check , / t e s t : w e b s i t e / ) ;
2021} ) ;
2122
23+ test ( "the website build plugin is deliberately tracked" , ( ) => {
24+ const ignoreRules = read ( ".gitignore" ) ;
25+ assert . match ( ignoreRules , / ! w e b s i t e \/ b u i l d \/ / ) ;
26+ assert . match ( ignoreRules , / ! w e b s i t e \/ b u i l d \/ s i t e s - v i t e - p l u g i n \. t s / ) ;
27+ assert . match ( read ( "website/vite.config.ts" ) , / \. \/ b u i l d \/ s i t e s - v i t e - p l u g i n / ) ;
28+ } ) ;
29+
30+ test ( "website shell helpers survive browser uploads without executable modes" , ( ) => {
31+ const wrappers = [
32+ "website/scripts/build-verified.sh" ,
33+ "website/scripts/install-ci.sh" ,
34+ "website/scripts/validate-artifact.sh" ,
35+ ] ;
36+ for ( const wrapper of wrappers ) {
37+ assert . match (
38+ read ( wrapper ) ,
39+ / e x e c b a s h " \$ \{ s c r i p t _ d i r \} \/ s i t e s - e n v \. s h " - - b a s h " \$ 0 " " \$ @ " / ,
40+ wrapper ,
41+ ) ;
42+ }
43+ assert . match (
44+ read ( "website/scripts/build-verified.sh" ) ,
45+ / b a s h " \$ \{ s c r i p t _ d i r \} \/ v a l i d a t e - a r t i f a c t \. s h " / ,
46+ ) ;
47+ } ) ;
48+
2249test ( "the public website derives identity and policy from central configuration" , ( ) => {
2350 const central = json ( "config/ross-brand.json" ) ;
2451 const siteConfig = read ( "website/app/site-config.ts" ) ;
0 commit comments