@@ -10,12 +10,16 @@ import path from 'path';
1010import { PROJECT_ROOT } from './constants' ;
1111
1212describe ( 'npm-packages bump' , function ( ) {
13- let fsReadFile : SinonStub ;
1413 let fsWriteFile : SinonStub ;
14+ const shellApiSrc = path . join (
15+ PROJECT_ROOT ,
16+ 'packages' ,
17+ 'shell-api' ,
18+ 'src' ,
19+ 'mongosh-version.ts'
20+ ) ;
1521
1622 beforeEach ( function ( ) {
17- fsReadFile = sinon . stub ( fs , 'readFile' ) ;
18-
1923 fsWriteFile = sinon . stub ( fs , 'writeFile' ) ;
2024 fsWriteFile . resolves ( ) ;
2125 } ) ;
@@ -25,6 +29,13 @@ describe('npm-packages bump', function () {
2529 } ) ;
2630
2731 describe ( 'bumpMongoshReleasePackages' , function ( ) {
32+ let fsReadFile : SinonStub ;
33+ let getPackagesInTopologicalOrder : sinon . SinonStub ;
34+ beforeEach ( function ( ) {
35+ fsReadFile = sinon . stub ( fs , 'readFile' ) ;
36+ getPackagesInTopologicalOrder = sinon . stub ( ) ;
37+ } ) ;
38+
2839 it ( 'warns and does not run if version is not set' , async function ( ) {
2940 const consoleWarnSpy = sinon . spy ( console , 'warn' ) ;
3041 await bumpMongoshReleasePackages ( '' ) ;
@@ -35,9 +46,112 @@ describe('npm-packages bump', function () {
3546 expect ( fsWriteFile ) . not . called ;
3647 consoleWarnSpy . restore ( ) ;
3748 } ) ;
49+
50+ it ( 'bumps only mongosh packages' , async function ( ) {
51+ getPackagesInTopologicalOrder . resolves ( [
52+ { name : 'mongosh' , location : 'packages/mongosh' } ,
53+ { name : '@mongosh/autocomplete' , location : 'packages/autocomplete' } ,
54+ ] ) ;
55+
56+ const rootProjectJson = `${ PROJECT_ROOT } /package.json` ;
57+ const mockPackageJson = [
58+ [
59+ rootProjectJson ,
60+ {
61+ name : 'mongosh' ,
62+ devDependencies : {
63+ mongosh : '0.1.2' ,
64+ '@mongosh/cli-repl' : '0.1.2' ,
65+ '@mongosh/autocomplete' : '1.2.3' ,
66+ } ,
67+ } ,
68+ ] ,
69+ [
70+ 'packages/mongosh/package.json' ,
71+ {
72+ name : 'mongosh' ,
73+ version : '0.1.2' ,
74+ devDependencies : {
75+ '@mongosh/cli-repl' : '9.9.9' ,
76+ '@mongosh/autocomplete' : '1.2.3' ,
77+ } ,
78+ } ,
79+ ] ,
80+ [
81+ 'packages/autocomplete/package.json' ,
82+ {
83+ name : '@mongosh/autocomplete' ,
84+ version : '1.2.3' ,
85+ devDependencies : {
86+ '@mongosh/cli-repl' : '0.1.2' ,
87+ '@mongosh/config' : '3.3.3' ,
88+ } ,
89+ } ,
90+ ] ,
91+ ] ;
92+
93+ fsReadFile . throws ( 'Unknown file' ) ;
94+ for ( const [ file , json ] of mockPackageJson ) {
95+ fsReadFile . withArgs ( file , 'utf8' ) . resolves ( JSON . stringify ( json ) ) ;
96+ }
97+
98+ const updateShellApiMongoshVersion = sinon . stub ( ) ;
99+ await bumpMongoshReleasePackages (
100+ '9.9.9' ,
101+ getPackagesInTopologicalOrder ,
102+ updateShellApiMongoshVersion
103+ ) ;
104+ expect ( fsWriteFile ) . callCount ( 3 ) ;
105+
106+ expect (
107+ JSON . parse (
108+ fsWriteFile . withArgs ( rootProjectJson ) . firstCall . args [ 1 ] as string
109+ )
110+ ) . deep . equals ( {
111+ name : 'mongosh' ,
112+ devDependencies : {
113+ mongosh : '9.9.9' ,
114+ '@mongosh/cli-repl' : '9.9.9' ,
115+ '@mongosh/autocomplete' : '1.2.3' ,
116+ } ,
117+ } ) ;
118+
119+ expect (
120+ JSON . parse (
121+ fsWriteFile . withArgs ( 'packages/mongosh/package.json' ) . firstCall
122+ . args [ 1 ] as string
123+ )
124+ ) . deep . equals ( {
125+ name : 'mongosh' ,
126+ version : '9.9.9' ,
127+ devDependencies : {
128+ '@mongosh/cli-repl' : '9.9.9' ,
129+ '@mongosh/autocomplete' : '1.2.3' ,
130+ } ,
131+ } ) ;
132+
133+ expect (
134+ JSON . parse (
135+ fsWriteFile . withArgs ( 'packages/autocomplete/package.json' ) . firstCall
136+ . args [ 1 ] as string
137+ )
138+ ) . deep . equals ( {
139+ name : '@mongosh/autocomplete' ,
140+ version : '1.2.3' ,
141+ devDependencies : {
142+ '@mongosh/cli-repl' : '9.9.9' ,
143+ '@mongosh/config' : '3.3.3' ,
144+ } ,
145+ } ) ;
146+ } ) ;
38147 } ) ;
39148
40149 describe ( 'updateShellApiMongoshVersion' , function ( ) {
150+ let fsReadFile : SinonStub ;
151+ beforeEach ( function ( ) {
152+ fsReadFile = sinon . stub ( fs , 'readFile' ) ;
153+ } ) ;
154+
41155 it ( 'updates the file to the set version' , async function ( ) {
42156 fsReadFile . resolves ( `
43157 /** Current mongosh cli-repl version. */
@@ -47,13 +161,7 @@ describe('npm-packages bump', function () {
47161 await updateShellApiMongoshVersion ( newVersion ) ;
48162
49163 expect ( fsWriteFile ) . calledWith (
50- path . join (
51- PROJECT_ROOT ,
52- 'packages' ,
53- 'shell-api' ,
54- 'src' ,
55- 'mongosh-version.ts'
56- ) ,
164+ shellApiSrc ,
57165 `
58166 /** Current mongosh cli-repl version. */
59167 export const MONGOSH_VERSION = '${ newVersion } ';` ,
0 commit comments