@@ -40,6 +40,11 @@ function createFixtureRepo(): string {
4040 version : initialVersion ,
4141 private : true
4242 } )
43+ writeJson ( join ( rootDir , 'cli-integration-test' , 'package.json' ) , {
44+ name : '@truenine/memory-sync-cli-integration-test' ,
45+ version : initialVersion ,
46+ private : true
47+ } )
4348 writeJson ( join ( rootDir , 'cli' , 'npm' , 'darwin-arm64' , 'package.json' ) , {
4449 name : '@truenine/memory-sync-cli-darwin-arm64' ,
4550 version : initialVersion
@@ -106,6 +111,7 @@ describe('sync-versions hook', () => {
106111 expect ( result . versionSource ) . toBe ( 'cli/npm/darwin-arm64/package.json' )
107112 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
108113 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
114+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli-integration-test' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
109115 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'sdk' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
110116 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'libraries' , 'logger' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
111117 expect ( readFileSync ( join ( rootDir , 'Cargo.toml' ) , 'utf-8' ) ) . toContain ( `version = "${ nextVersion } "` )
@@ -114,6 +120,7 @@ describe('sync-versions hook', () => {
114120 expect ( stagedFiles ) . toEqual ( new Set ( [
115121 'Cargo.toml' ,
116122 'cli-crate/Cargo.toml' ,
123+ 'cli-integration-test/package.json' ,
117124 'cli/npm/darwin-arm64/package.json' ,
118125 'cli/package.json' ,
119126 'gui/src-tauri/tauri.conf.json' ,
@@ -142,6 +149,45 @@ describe('sync-versions hook', () => {
142149 expect ( result . versionSource ) . toBe ( 'sdk/package.json' )
143150 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
144151 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
152+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli-integration-test' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
153+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'sdk' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
154+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'libraries' , 'logger' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
155+ expect ( readFileSync ( join ( rootDir , 'Cargo.toml' ) , 'utf-8' ) ) . toContain ( `version = "${ nextVersion } "` )
156+ expect ( readFileSync ( join ( rootDir , 'cli-crate' , 'Cargo.toml' ) , 'utf-8' ) ) . toContain ( `version = "${ nextVersion } "` )
157+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'gui' , 'src-tauri' , 'tauri.conf.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
158+ expect ( stagedFiles ) . toEqual ( new Set ( [
159+ 'Cargo.toml' ,
160+ 'cli-crate/Cargo.toml' ,
161+ 'cli-integration-test/package.json' ,
162+ 'cli/npm/darwin-arm64/package.json' ,
163+ 'cli/package.json' ,
164+ 'gui/src-tauri/tauri.conf.json' ,
165+ 'libraries/logger/package.json' ,
166+ 'package.json' ,
167+ 'sdk/package.json'
168+ ] ) )
169+ } )
170+
171+ it ( 'accepts cli-integration-test/package.json as a staged version source and propagates it' , ( ) => {
172+ const rootDir = createFixtureRepo ( )
173+ tempDirs . push ( rootDir )
174+
175+ const nextVersion = '2026.10324.10318'
176+ writeJson ( join ( rootDir , 'cli-integration-test' , 'package.json' ) , {
177+ name : '@truenine/memory-sync-cli-integration-test' ,
178+ version : nextVersion ,
179+ private : true
180+ } )
181+ runGit ( rootDir , [ 'add' , 'cli-integration-test/package.json' ] )
182+
183+ const result = runSyncVersions ( { rootDir} )
184+ const stagedFiles = new Set ( runGit ( rootDir , [ 'diff' , '--cached' , '--name-only' ] ) . split ( / \r ? \n / ) . filter ( Boolean ) )
185+
186+ expect ( result . targetVersion ) . toBe ( nextVersion )
187+ expect ( result . versionSource ) . toBe ( 'cli-integration-test/package.json' )
188+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
189+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
190+ expect ( JSON . parse ( readFileSync ( join ( rootDir , 'cli-integration-test' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
145191 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'sdk' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
146192 expect ( JSON . parse ( readFileSync ( join ( rootDir , 'libraries' , 'logger' , 'package.json' ) , 'utf-8' ) ) as { version : string } ) . toMatchObject ( { version : nextVersion } )
147193 expect ( readFileSync ( join ( rootDir , 'Cargo.toml' ) , 'utf-8' ) ) . toContain ( `version = "${ nextVersion } "` )
@@ -150,6 +196,7 @@ describe('sync-versions hook', () => {
150196 expect ( stagedFiles ) . toEqual ( new Set ( [
151197 'Cargo.toml' ,
152198 'cli-crate/Cargo.toml' ,
199+ 'cli-integration-test/package.json' ,
153200 'cli/npm/darwin-arm64/package.json' ,
154201 'cli/package.json' ,
155202 'gui/src-tauri/tauri.conf.json' ,
0 commit comments