@@ -108,6 +108,58 @@ suite('testing the javascript-npm data provider', async () => {
108108
109109 [
110110 { providerName : 'pnpm' , testCase : 'workspace_member' } ,
111+ ] . forEach ( ( { providerName, testCase } ) => {
112+ test ( `verify workspace member data for ${ providerName } - stack analysis` , async ( ) => {
113+ let expectedSbom = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /stack_expected_sbom.json` ) . toString ( ) ;
114+ let listing = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /listing_stack.json` ) . toString ( ) ;
115+
116+ const provider = await createMockProvider ( providerName , listing ) ;
117+ const manifestPath = `test/providers/tst_manifests/${ providerName } /${ testCase } /packages/member-a/package.json` ;
118+ let providedDataForStack = provider . provideStack ( manifestPath ) ;
119+
120+ compareSboms ( providedDataForStack . content , expectedSbom ) ;
121+ } ) . timeout ( 30000 ) ;
122+
123+ test ( `verify workspace member data for ${ providerName } - component analysis` , async ( ) => {
124+ let expectedSbom = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /component_expected_sbom.json` ) . toString ( ) ;
125+ let listing = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /listing_component.json` ) . toString ( ) ;
126+
127+ const provider = await createMockProvider ( providerName , listing ) ;
128+ const manifestPath = `test/providers/tst_manifests/${ providerName } /${ testCase } /packages/member-a/package.json` ;
129+ let providedDataForComponent = provider . provideComponent ( manifestPath ) ;
130+
131+ compareSboms ( providedDataForComponent . content , expectedSbom ) ;
132+ } ) . timeout ( 15000 ) ;
133+ } ) ;
134+
135+ [
136+ { providerName : 'yarn-berry' , testCase : 'workspace_member' } ,
137+ ] . forEach ( ( { providerName, testCase } ) => {
138+ test ( `verify workspace member data for ${ providerName } - stack analysis` , async ( ) => {
139+ let expectedSbom = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /stack_expected_sbom.json` ) . toString ( ) ;
140+ let listing = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /listing_stack.json` ) . toString ( ) ;
141+
142+ const provider = await createMockProvider ( providerName , listing ) ;
143+ const manifestPath = `test/providers/tst_manifests/${ providerName } /${ testCase } /packages/member-a/package.json` ;
144+ let providedDataForStack = provider . provideStack ( manifestPath ) ;
145+
146+ compareSboms ( providedDataForStack . content , expectedSbom ) ;
147+ } ) . timeout ( 30000 ) ;
148+
149+ test ( `verify workspace member data for ${ providerName } - component analysis` , async ( ) => {
150+ let expectedSbom = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /component_expected_sbom.json` ) . toString ( ) ;
151+ let listing = fs . readFileSync ( `test/providers/tst_manifests/${ providerName } /${ testCase } /listing_component.json` ) . toString ( ) ;
152+
153+ const provider = await createMockProvider ( providerName , listing ) ;
154+ const manifestPath = `test/providers/tst_manifests/${ providerName } /${ testCase } /packages/member-a/package.json` ;
155+ let providedDataForComponent = provider . provideComponent ( manifestPath ) ;
156+
157+ compareSboms ( providedDataForComponent . content , expectedSbom ) ;
158+ } ) . timeout ( 15000 ) ;
159+ } ) ;
160+
161+ [
162+ { providerName : 'npm' , testCase : 'workspace_member' } ,
111163 ] . forEach ( ( { providerName, testCase } ) => {
112164 /// Verifies that stack analysis resolves transitive dependencies for a workspace member.
113165 test ( `verify workspace member data provided for ${ providerName } - stack analysis` , async ( ) => {
0 commit comments