@@ -14,7 +14,7 @@ import * as git from './utils/git';
14
14
import { executePostTargets } from './utils/post-target' ;
15
15
import { tryBump } from './utils/try-bump' ;
16
16
import * as workspace from './utils/workspace' ;
17
- import { getProjectDependencies } from './utils/get-project-dependencies' ;
17
+ import { getDependencyRoots } from './utils/get-project-dependencies' ;
18
18
19
19
jest . mock ( 'child_process' ) ;
20
20
jest . mock ( 'standard-version' , ( ) => jest . fn ( ) ) ;
@@ -38,10 +38,9 @@ describe('@jscutlery/semver:version', () => {
38
38
const mockStandardVersion = standardVersion as jest . MockedFunction <
39
39
typeof standardVersion
40
40
> ;
41
- const mockGetProjectDependencies =
42
- getProjectDependencies as jest . MockedFunction <
43
- typeof getProjectDependencies
44
- > ;
41
+ const mockGetDependencyRoots = getDependencyRoots as jest . MockedFunction <
42
+ typeof getDependencyRoots
43
+ > ;
45
44
const mockExecutePostTargets = executePostTargets as jest . MockedFunction <
46
45
typeof executePostTargets
47
46
> ;
@@ -83,6 +82,7 @@ describe('@jscutlery/semver:version', () => {
83
82
jest . spyOn ( git , 'addToStage' ) . mockReturnValue ( of ( undefined ) ) ;
84
83
85
84
mockExecutePostTargets . mockReturnValue ( of ( undefined ) ) ;
85
+ mockGetDependencyRoots . mockReturnValue ( Promise . resolve ( [ ] ) ) ;
86
86
87
87
/* Mock a dependency, don't ask me which one. */
88
88
mockExecFile . mockImplementation (
@@ -146,11 +146,13 @@ describe('@jscutlery/semver:version', () => {
146
146
} ) ;
147
147
148
148
it ( 'should run standard-version independently on a project with dependencies' , async ( ) => {
149
- mockGetProjectDependencies . mockReturnValue (
150
- Promise . resolve ( [ 'lib1' , 'lib2' ] )
149
+ mockGetDependencyRoots . mockReturnValue (
150
+ Promise . resolve ( [ '/root/libs/lib1' , '/root/libs/lib2' ] )
151
+ ) ;
152
+ const { success } = await version (
153
+ { ...options , trackDeps : true } ,
154
+ context
151
155
) ;
152
- const tempOptions = { ...options , trackDeps : true } ;
153
- const { success } = await version ( tempOptions , context ) ;
154
156
155
157
expect ( success ) . toBe ( true ) ;
156
158
expect ( mockTryBump ) . toBeCalledWith (
@@ -174,17 +176,11 @@ describe('@jscutlery/semver:version', () => {
174
176
} ) ;
175
177
176
178
it ( 'should run standard-version independently on a project with failure on dependencies' , async ( ) => {
177
- mockGetProjectDependencies . mockReturnValue (
178
- Promise . reject ( 'thrown error' )
179
- ) ;
180
- const tempOptions = { ...options , trackDeps : true } ;
181
- let error ;
182
- try {
183
- await version ( tempOptions , context ) ;
184
- } catch ( e ) {
185
- error = e ;
186
- }
187
- expect ( error ) . toEqual ( 'thrown error' ) ;
179
+ mockGetDependencyRoots . mockReturnValue ( Promise . reject ( 'thrown error' ) ) ;
180
+
181
+ expect ( await version ( { ...options , trackDeps : true } , context ) ) . toEqual ( {
182
+ success : false ,
183
+ } ) ;
188
184
expect ( logger . error ) . toBeCalledWith ( 'Failed to determine dependencies.' ) ;
189
185
expect ( standardVersion ) . not . toBeCalled ( ) ;
190
186
} ) ;
@@ -466,7 +462,21 @@ describe('@jscutlery/semver:version', () => {
466
462
) ;
467
463
468
464
expect ( success ) . toBe ( true ) ;
469
- expect ( mockExecutePostTargets ) . toBeCalled ( ) ;
465
+ expect ( mockExecutePostTargets ) . toBeCalledWith (
466
+ expect . objectContaining ( {
467
+ resolvableOptions : {
468
+ baseBranch : 'main' ,
469
+ dryRun : false ,
470
+ noVerify : false ,
471
+ notes : '' ,
472
+ project : 'a' ,
473
+ remote : 'origin' ,
474
+ tag : 'a-2.1.0' ,
475
+ tagPrefix : 'a-' ,
476
+ version : '2.1.0' ,
477
+ } ,
478
+ } )
479
+ ) ;
470
480
} ) ;
471
481
472
482
it ( 'should handle post targets failure' , async ( ) => {
0 commit comments