@@ -43,9 +43,7 @@ describe('auth tests', () => {
4343 await io . rmRF ( altHome ) ; // ensure it doesn't already exist
4444
4545 await auth . createAuthenticationSettings (
46- id ,
47- username ,
48- password ,
46+ [ { id, username, password} ] ,
4947 altHome ,
5048 true
5149 ) ;
@@ -56,7 +54,7 @@ describe('auth tests', () => {
5654 expect ( fs . existsSync ( altHome ) ) . toBe ( true ) ;
5755 expect ( fs . existsSync ( altSettingsFile ) ) . toBe ( true ) ;
5856 expect ( fs . readFileSync ( altSettingsFile , 'utf-8' ) ) . toEqual (
59- auth . generate ( id , username , password )
57+ auth . generate ( [ { id, username, password} ] )
6058 ) ;
6159
6260 await io . rmRF ( altHome ) ;
@@ -68,17 +66,15 @@ describe('auth tests', () => {
6866 const password = 'TOKEN' ;
6967
7068 await auth . createAuthenticationSettings (
71- id ,
72- username ,
73- password ,
69+ [ { id, username, password} ] ,
7470 m2Dir ,
7571 true
7672 ) ;
7773
7874 expect ( fs . existsSync ( m2Dir ) ) . toBe ( true ) ;
7975 expect ( fs . existsSync ( settingsFile ) ) . toBe ( true ) ;
8076 expect ( fs . readFileSync ( settingsFile , 'utf-8' ) ) . toEqual (
81- auth . generate ( id , username , password )
77+ auth . generate ( [ { id, username, password} ] )
8278 ) ;
8379 } , 100000 ) ;
8480
@@ -89,18 +85,15 @@ describe('auth tests', () => {
8985 const gpgPassphrase = 'GPG' ;
9086
9187 await auth . createAuthenticationSettings (
92- id ,
93- username ,
94- password ,
88+ [ { id, username, password, gpgPassphrase} ] ,
9589 m2Dir ,
96- true ,
97- gpgPassphrase
90+ true
9891 ) ;
9992
10093 expect ( fs . existsSync ( m2Dir ) ) . toBe ( true ) ;
10194 expect ( fs . existsSync ( settingsFile ) ) . toBe ( true ) ;
10295 expect ( fs . readFileSync ( settingsFile , 'utf-8' ) ) . toEqual (
103- auth . generate ( id , username , password , gpgPassphrase )
96+ auth . generate ( [ { id, username, password, gpgPassphrase} ] )
10497 ) ;
10598 } , 100000 ) ;
10699
@@ -115,17 +108,15 @@ describe('auth tests', () => {
115108 expect ( fs . existsSync ( settingsFile ) ) . toBe ( true ) ;
116109
117110 await auth . createAuthenticationSettings (
118- id ,
119- username ,
120- password ,
111+ [ { id, username, password} ] ,
121112 m2Dir ,
122113 true
123114 ) ;
124115
125116 expect ( fs . existsSync ( m2Dir ) ) . toBe ( true ) ;
126117 expect ( fs . existsSync ( settingsFile ) ) . toBe ( true ) ;
127118 expect ( fs . readFileSync ( settingsFile , 'utf-8' ) ) . toEqual (
128- auth . generate ( id , username , password )
119+ auth . generate ( [ { id, username, password} ] )
129120 ) ;
130121 } , 100000 ) ;
131122
@@ -140,9 +131,7 @@ describe('auth tests', () => {
140131 expect ( fs . existsSync ( settingsFile ) ) . toBe ( true ) ;
141132
142133 await auth . createAuthenticationSettings (
143- id ,
144- username ,
145- password ,
134+ [ { id, username, password} ] ,
146135 m2Dir ,
147136 false
148137 ) ;
@@ -169,7 +158,7 @@ describe('auth tests', () => {
169158 </servers>
170159</settings>` ;
171160
172- expect ( auth . generate ( id , username , password ) ) . toEqual ( expectedSettings ) ;
161+ expect ( auth . generate ( [ { id, username, password} ] ) ) . toEqual ( expectedSettings ) ;
173162 } ) ;
174163
175164 it ( 'generates valid settings.xml with additional configuration' , ( ) => {
@@ -194,8 +183,50 @@ describe('auth tests', () => {
194183 </servers>
195184</settings>` ;
196185
197- expect ( auth . generate ( id , username , password , gpgPassphrase ) ) . toEqual (
198- expectedSettings
199- ) ;
186+ expect (
187+ auth . generate ( [
188+ { id, username, password} ,
189+ { id : 'gpg.passphrase' , gpgPassphrase : gpgPassphrase }
190+ ] )
191+ ) . toEqual ( expectedSettings ) ;
192+ } ) ;
193+
194+ it ( 'generates valid settings.xml for multiple repositories' , ( ) => {
195+ const id0 = 'packages0' ;
196+ const username0 = 'USER0' ;
197+ const password0 = '&<>"\'\'"><&0' ;
198+ const id1 = 'packages1' ;
199+ const username1 = 'USER1' ;
200+ const password1 = '&<>"\'\'"><&1' ;
201+ const gpgPassphrase = 'PASSPHRASE' ;
202+
203+ const expectedSettings = `<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
204+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
205+ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
206+ <servers>
207+ <server>
208+ <id>${ id0 } </id>
209+ <username>\${env.${ username0 } }</username>
210+ <password>\${env.&<>"''"><&0}</password>
211+ </server>
212+ <server>
213+ <id>${ id1 } </id>
214+ <username>\${env.${ username1 } }</username>
215+ <password>\${env.&<>"''"><&1}</password>
216+ </server>
217+ <server>
218+ <id>gpg.passphrase</id>
219+ <passphrase>\${env.${ gpgPassphrase } }</passphrase>
220+ </server>
221+ </servers>
222+ </settings>` ;
223+
224+ expect (
225+ auth . generate ( [
226+ { id : id0 , username : username0 , password : password0 } ,
227+ { id : id1 , username : username1 , password : password1 } ,
228+ { id : 'gpg.passphrase' , gpgPassphrase : gpgPassphrase }
229+ ] )
230+ ) . toEqual ( expectedSettings ) ;
200231 } ) ;
201232} ) ;
0 commit comments