@@ -131,72 +131,27 @@ describe('PackageURLBuilder', () => {
131131 expect ( builder ) . toBeInstanceOf ( PackageURLBuilder )
132132 } )
133133
134- it ( 'should create npm builder' , ( ) => {
135- const purl = PackageURLBuilder . npm ( ) . name ( 'lodash' ) . build ( )
136-
137- expect ( purl . type ) . toBe ( 'npm' )
138- expect ( purl . name ) . toBe ( 'lodash' )
139- } )
140-
141- it ( 'should create pypi builder' , ( ) => {
142- const purl = PackageURLBuilder . pypi ( ) . name ( 'requests' ) . build ( )
143-
144- expect ( purl . type ) . toBe ( 'pypi' )
145- expect ( purl . name ) . toBe ( 'requests' )
146- } )
147-
148- it ( 'should create maven builder' , ( ) => {
149- const purl = PackageURLBuilder . maven ( )
150- . namespace ( 'org.apache.commons' )
151- . name ( 'commons-lang3' )
152- . build ( )
153-
154- expect ( purl . type ) . toBe ( 'maven' )
155- expect ( purl . namespace ) . toBe ( 'org.apache.commons' )
156- expect ( purl . name ) . toBe ( 'commons-lang3' )
157- } )
158-
159- it ( 'should create gem builder' , ( ) => {
160- const purl = PackageURLBuilder . gem ( ) . name ( 'rails' ) . build ( )
161-
162- expect ( purl . type ) . toBe ( 'gem' )
163- expect ( purl . name ) . toBe ( 'rails' )
164- } )
165-
166- it ( 'should create golang builder' , ( ) => {
167- const purl = PackageURLBuilder . golang ( )
168- . namespace ( 'github.com/gin-gonic' )
169- . name ( 'gin' )
170- . build ( )
171-
172- expect ( purl . type ) . toBe ( 'golang' )
173- expect ( purl . namespace ) . toBe ( 'github.com/gin-gonic' )
174- expect ( purl . name ) . toBe ( 'gin' )
175- } )
176-
177- it ( 'should create cargo builder' , ( ) => {
178- const purl = PackageURLBuilder . cargo ( ) . name ( 'serde' ) . build ( )
179-
180- expect ( purl . type ) . toBe ( 'cargo' )
181- expect ( purl . name ) . toBe ( 'serde' )
182- } )
183-
184- it ( 'should create nuget builder' , ( ) => {
185- const purl = PackageURLBuilder . nuget ( ) . name ( 'Newtonsoft.Json' ) . build ( )
186-
187- expect ( purl . type ) . toBe ( 'nuget' )
188- expect ( purl . name ) . toBe ( 'Newtonsoft.Json' )
189- } )
190-
191- it ( 'should create composer builder' , ( ) => {
192- const purl = PackageURLBuilder . composer ( )
193- . namespace ( 'symfony' )
194- . name ( 'console' )
195- . build ( )
196-
197- expect ( purl . type ) . toBe ( 'composer' )
198- expect ( purl . namespace ) . toBe ( 'symfony' )
199- expect ( purl . name ) . toBe ( 'console' )
134+ it . each ( [
135+ [ 'npm' , undefined , 'lodash' ] ,
136+ [ 'pypi' , undefined , 'requests' ] ,
137+ [ 'maven' , 'org.apache.commons' , 'commons-lang3' ] ,
138+ [ 'gem' , undefined , 'rails' ] ,
139+ [ 'golang' , 'github.com/gin-gonic' , 'gin' ] ,
140+ [ 'cargo' , undefined , 'serde' ] ,
141+ [ 'nuget' , undefined , 'Newtonsoft.Json' ] ,
142+ [ 'composer' , 'symfony' , 'console' ] ,
143+ ] as const ) ( 'should create %s builder' , ( type , namespace , name ) => {
144+ const builder = ( PackageURLBuilder as any ) [ type ] ( )
145+ if ( namespace !== undefined ) {
146+ builder . namespace ( namespace )
147+ }
148+ const purl = builder . name ( name ) . build ( )
149+
150+ expect ( purl . type ) . toBe ( type )
151+ expect ( purl . name ) . toBe ( name )
152+ if ( namespace !== undefined ) {
153+ expect ( purl . namespace ) . toBe ( namespace )
154+ }
200155 } )
201156 } )
202157
0 commit comments