@@ -28,8 +28,8 @@ function runTests() {
2828 "README.md" ,
2929 ".devcontainer/devcontainer.json" ,
3030 ".devcontainer/scripts/setup.sh" ,
31- ".codeforge/config/settings.json" ,
32- ".codeforge/file-manifest.json" ,
31+ ".devcontainer/defaults/ codeforge/config/settings.json" ,
32+ ".devcontainer/defaults/ codeforge/file-manifest.json" ,
3333 ] ;
3434
3535 let allFilesExist = true ;
@@ -99,9 +99,14 @@ function runTests() {
9999
100100 // Test 7: generateChecksums produces expected structure
101101 let checksumStructureValid = true ;
102- const codeforgeDir = path . join ( __dirname , ".codeforge" ) ;
103- if ( fs . existsSync ( codeforgeDir ) ) {
104- const checksums = generateChecksums ( codeforgeDir ) ;
102+ const defaultsDir = path . join (
103+ __dirname ,
104+ ".devcontainer" ,
105+ "defaults" ,
106+ "codeforge" ,
107+ ) ;
108+ if ( fs . existsSync ( defaultsDir ) ) {
109+ const checksums = generateChecksums ( defaultsDir ) ;
105110 if ( typeof checksums === "object" && checksums !== null ) {
106111 const keys = Object . keys ( checksums ) ;
107112 if ( keys . length > 0 ) {
@@ -125,55 +130,41 @@ function runTests() {
125130 checksumStructureValid = false ;
126131 }
127132 } else {
128- console . log ( "❌ Test 7: .codeforge directory not found, skipping" ) ;
133+ console . log (
134+ "❌ Test 7: .devcontainer/defaults/codeforge/ not found, skipping" ,
135+ ) ;
129136 checksumStructureValid = false ;
130137 }
131138
132- // Test 8: Bundled defaults in .devcontainer/defaults/codeforge/ match .codeforge/
133- let bundledDefaultsInSync = true ;
134- const bundledDir = path . join (
135- __dirname ,
136- ".devcontainer" ,
137- "defaults" ,
138- "codeforge" ,
139- ) ;
140- if ( fs . existsSync ( bundledDir ) && fs . existsSync ( codeforgeDir ) ) {
141- const sourceChecksums = generateChecksums ( codeforgeDir ) ;
142- const bundledChecksums = generateChecksums ( bundledDir ) ;
143- const sourceKeys = Object . keys ( sourceChecksums ) . sort ( ) ;
144- const bundledKeys = Object . keys ( bundledChecksums ) . sort ( ) ;
139+ // Test 8: Defaults directory has expected config structure
140+ let defaultsStructureValid = true ;
141+ const expectedSubdirs = [ "config" ] ;
142+ const expectedFiles = [ "file-manifest.json" , "config/settings.json" ] ;
145143
146- if ( JSON . stringify ( sourceKeys ) !== JSON . stringify ( bundledKeys ) ) {
147- console . log (
148- "❌ Test 8: Bundled defaults file list differs from .codeforge/" ,
149- ) ;
150- const missing = sourceKeys . filter ( ( k ) => ! bundledKeys . includes ( k ) ) ;
151- const extra = bundledKeys . filter ( ( k ) => ! sourceKeys . includes ( k ) ) ;
152- if ( missing . length )
153- console . log ( ` Missing from bundled: ${ missing . join ( ", " ) } ` ) ;
154- if ( extra . length )
155- console . log ( ` Extra in bundled: ${ extra . join ( ", " ) } ` ) ;
156- bundledDefaultsInSync = false ;
157- } else {
158- const drifted = sourceKeys . filter (
159- ( k ) => sourceChecksums [ k ] !== bundledChecksums [ k ] ,
160- ) ;
161- if ( drifted . length > 0 ) {
162- console . log (
163- "❌ Test 8: Bundled defaults content differs from .codeforge/" ,
164- ) ;
165- console . log ( ` Drifted files: ${ drifted . join ( ", " ) } ` ) ;
166- bundledDefaultsInSync = false ;
167- } else {
168- console . log ( "✓ Test 8: Bundled defaults match .codeforge/" ) ;
144+ if ( fs . existsSync ( defaultsDir ) ) {
145+ for ( const subdir of expectedSubdirs ) {
146+ const subdirPath = path . join ( defaultsDir , subdir ) ;
147+ if (
148+ ! fs . existsSync ( subdirPath ) ||
149+ ! fs . statSync ( subdirPath ) . isDirectory ( )
150+ ) {
151+ console . log ( `❌ Test 8: Missing expected subdirectory: ${ subdir } ` ) ;
152+ defaultsStructureValid = false ;
169153 }
170154 }
171- } else if ( ! fs . existsSync ( bundledDir ) ) {
172- console . log ( "❌ Test 8: .devcontainer/defaults/codeforge/ not found" ) ;
173- bundledDefaultsInSync = false ;
155+ for ( const file of expectedFiles ) {
156+ const filePath = path . join ( defaultsDir , file ) ;
157+ if ( ! fs . existsSync ( filePath ) ) {
158+ console . log ( `❌ Test 8: Missing expected file: ${ file } ` ) ;
159+ defaultsStructureValid = false ;
160+ }
161+ }
162+ if ( defaultsStructureValid ) {
163+ console . log ( "✓ Test 8: Defaults directory has expected structure" ) ;
164+ }
174165 } else {
175- console . log ( "❌ Test 8: .codeforge/ not found, cannot compare " ) ;
176- bundledDefaultsInSync = false ;
166+ console . log ( "❌ Test 8: .devcontainer/defaults/ codeforge/ not found" ) ;
167+ defaultsStructureValid = false ;
177168 }
178169
179170 // Summary
@@ -184,7 +175,7 @@ function runTests() {
184175 setupExecutable &&
185176 checksumFunctionsExist &&
186177 checksumStructureValid &&
187- bundledDefaultsInSync
178+ defaultsStructureValid
188179 ) {
189180 console . log ( "🎉 All tests passed! Package is ready for distribution." ) ;
190181 process . exit ( 0 ) ;
0 commit comments