@@ -8,12 +8,8 @@ import { GitHubProvider } from './github-provider.mts'
88import { GitLabProvider } from './gitlab-provider.mts'
99
1010// Mock dependencies.
11- vi . mock ( 'node:child_process' , ( ) => ( {
12- spawnSync : vi . fn ( ) ,
13- } ) )
14-
1511const mockCacheDir = path . join ( os . tmpdir ( ) , 'socket-cache' )
16- vi . mock ( '../../constants/paths.mjs ' , ( ) => ( {
12+ vi . mock ( '../../constants/paths.mts ' , ( ) => ( {
1713 SOCKET_CLI_CACHE_DIR : mockCacheDir ,
1814 getGithubCachePath : ( ) => path . join ( mockCacheDir , 'github' ) ,
1915} ) )
@@ -52,88 +48,34 @@ describe('provider-factory', () => {
5248 } )
5349
5450 describe ( 'createPrProvider' , ( ) => {
55- it ( 'returns GitHubProvider for github.com remote' , async ( ) => {
56- const { spawnSync } = await import ( 'node:child_process' )
57- vi . mocked ( spawnSync ) . mockReturnValue ( {
58- status : 0 ,
59- stdout : 'https://github.com/owner/repo.git' ,
60- stderr : '' ,
61- pid : 123 ,
62- output : [ ] ,
63- signal : null ,
64- } )
65-
66- const provider = createPrProvider ( )
67- expect ( provider . getProviderName ( ) ) . toBe ( 'github' )
68- expect ( provider . supportsGraphQL ( ) ) . toBe ( true )
69- } )
70-
71- it ( 'returns GitLabProvider for gitlab.com remote' , async ( ) => {
72- const { spawnSync } = await import ( 'node:child_process' )
73- vi . mocked ( spawnSync ) . mockReturnValue ( {
74- status : 0 ,
75- stdout : 'https://gitlab.com/owner/repo.git' ,
76- stderr : '' ,
77- pid : 123 ,
78- output : [ ] ,
79- signal : null ,
80- } )
81-
82- // Set token to avoid error.
83- process . env . GITLAB_TOKEN = 'test-token'
84-
85- const provider = createPrProvider ( )
86- expect ( provider . getProviderName ( ) ) . toBe ( 'gitlab' )
87- expect ( provider . supportsGraphQL ( ) ) . toBe ( false )
88- } )
89-
9051 it ( 'returns GitLabProvider when GITLAB_HOST is set' , async ( ) => {
91- const { spawnSync } = await import ( 'node:child_process' )
92- vi . mocked ( spawnSync ) . mockReturnValue ( {
93- status : 0 ,
94- stdout : 'https://github.com/owner/repo.git' ,
95- stderr : '' ,
96- pid : 123 ,
97- output : [ ] ,
98- signal : null ,
99- } )
52+ const providerFactory = await import ( './provider-factory.mts' )
53+ vi . spyOn ( providerFactory , 'getGitRemoteUrlSync' ) . mockReturnValue (
54+ 'https://github.com/owner/repo.git' ,
55+ )
10056
10157 process . env . GITLAB_HOST = 'https://gitlab.example.com'
10258 process . env . GITLAB_TOKEN = 'test-token'
10359
104- const provider = createPrProvider ( )
60+ const provider = providerFactory . createPrProvider ( )
10561 expect ( provider . getProviderName ( ) ) . toBe ( 'gitlab' )
10662 expect ( provider . supportsGraphQL ( ) ) . toBe ( false )
10763 } )
10864
10965 it ( 'falls back to GitHubProvider when git command fails' , async ( ) => {
110- const { spawnSync } = await import ( 'node:child_process' )
111- vi . mocked ( spawnSync ) . mockReturnValue ( {
112- status : 1 ,
113- stdout : '' ,
114- stderr : 'not a git repository' ,
115- pid : 123 ,
116- output : [ ] ,
117- signal : null ,
118- } )
66+ const providerFactory = await import ( './provider-factory.mts' )
67+ vi . spyOn ( providerFactory , 'getGitRemoteUrlSync' ) . mockReturnValue ( '' )
11968
120- const provider = createPrProvider ( )
69+ const provider = providerFactory . createPrProvider ( )
12170 expect ( provider . getProviderName ( ) ) . toBe ( 'github' )
12271 expect ( provider . supportsGraphQL ( ) ) . toBe ( true )
12372 } )
12473
12574 it ( 'falls back to GitHubProvider for empty remote' , async ( ) => {
126- const { spawnSync } = await import ( 'node:child_process' )
127- vi . mocked ( spawnSync ) . mockReturnValue ( {
128- status : 0 ,
129- stdout : '' ,
130- stderr : '' ,
131- pid : 123 ,
132- output : [ ] ,
133- signal : null ,
134- } )
75+ const providerFactory = await import ( './provider-factory.mts' )
76+ vi . spyOn ( providerFactory , 'getGitRemoteUrlSync' ) . mockReturnValue ( '' )
13577
136- const provider = createPrProvider ( )
78+ const provider = providerFactory . createPrProvider ( )
13779 expect ( provider . getProviderName ( ) ) . toBe ( 'github' )
13880 expect ( provider . supportsGraphQL ( ) ) . toBe ( true )
13981 } )
0 commit comments