1- import { Client , cloud } from '../../src/oms'
1+ import { Client , cloud , defaultRegion } from '../../src/oms'
22
3- export const authUrl = 'https://iam.eu-de.otc.t-systems.com/v3'
3+ export let authUrl = 'https://iam.eu-de.otc.t-systems.com/v3'
44
5- export const authCases = [ 'ak/sk' , 'token' ]
5+ export const authCases = [ 'ak/sk' , 'token' , 'cloud' ]
66
77export async function commonBeforeAll ( authType : string ) : Promise < Client > {
8+ let region = defaultRegion
9+ if ( process . env . OS_REGION ) {
10+ region = String ( process . env . OS_REGION )
11+ }
12+ authUrl = 'https://iam.' + region + '.otc.t-systems.com/v3'
13+ if ( region === 'eu-ch2' ) {
14+ authUrl = 'https://iam-pub.' + region + '.sc.otc.t-systems.com/v3'
15+ }
16+ const projectName = process . env . OS_PROJECT_NAME
817 const config = cloud ( authUrl )
918 switch ( authType ) {
1019 case 'ak/sk' :
1120 const ak = process . env . AWS_ACCESS_KEY_ID
1221 const sk = process . env . AWS_SECRET_ACCESS_KEY
13- const projectName = process . env . OS_PROJECT_NAME
1422 if ( ! ak || ! sk || ! projectName ) {
1523 throw 'Missing AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY and OS_PROJECT_NAME required for tests'
1624 }
@@ -23,7 +31,20 @@ export async function commonBeforeAll(authType: string): Promise<Client> {
2331 }
2432 config . withToken ( t )
2533 break
34+ case 'cloud' :
35+ const domainName = process . env . OS_DOMAIN_NAME
36+ const password = process . env . OS_PASSWORD
37+ const username = process . env . OS_USERNAME
38+ if ( ! username || ! password || ! domainName || ! projectName ) {
39+ throw 'Missing OS_DOMAIN_NAME, OS_PASSWORD, OS_USERNAME and OS_PROJECT_NAME required for tests'
40+ }
41+ config
42+ . withRegion ( region )
43+ . withProject ( projectName )
44+ . withPassword ( domainName , username , password )
45+ break
2646 }
47+
2748 const client = new Client ( config . config )
2849 await client . authenticate ( )
2950 return client
0 commit comments