@@ -5,15 +5,29 @@ import { Agent } from 'node:https';
5
5
6
6
const httpClient = axios . create ( {
7
7
baseURL : 'https://localhost:7443' ,
8
- auth : {
9
- username : 'admin' ,
10
- password : 'admin' ,
11
- } ,
8
+ withCredentials : true ,
12
9
httpsAgent : new Agent ( {
13
10
rejectUnauthorized : false ,
14
11
} ) ,
15
12
} ) ;
16
13
14
+ httpClient . interceptors . response . use ( ( response ) => {
15
+ if ( response . headers [ 'set-cookie' ] ?. [ 0 ] ) {
16
+ //@ts -expect-error forced
17
+ httpClient . sessionToken = response . headers [ 'set-cookie' ] ?. [ 0 ] . split ( ';' ) [ 0 ] ;
18
+ }
19
+ return response ;
20
+ } ) ;
21
+
22
+ httpClient . interceptors . request . use (
23
+ ( config ) => {
24
+ //@ts -expect-error forced
25
+ config . headers [ 'Cookie' ] = httpClient . sessionToken ;
26
+ return config ;
27
+ } ,
28
+ ( error ) => Promise . reject ( error ) ,
29
+ ) ;
30
+
17
31
const setupAPI7 = async ( ) => {
18
32
return new Promise < void > ( ( resolve , reject ) => {
19
33
const ls = spawn (
@@ -45,13 +59,56 @@ const setupAPI7 = async () => {
45
59
} ) ;
46
60
} ;
47
61
62
+ const initUser = async ( username = 'admin' , password = 'admin' ) => {
63
+ console . log ( 'Log in' ) ;
64
+ await httpClient . post ( `/api/login` , {
65
+ username : username ,
66
+ password : password ,
67
+ } ) ;
68
+
69
+ console . log ( 'Modify password' ) ;
70
+ await httpClient . put ( `/api/password` , {
71
+ old_password : password ,
72
+ new_password : 'Admin12345!' ,
73
+ } ) ;
74
+
75
+ //@ts -expect-error forced
76
+ httpClient . sessionToken = '' ;
77
+
78
+ console . log ( 'Log in again' ) ;
79
+ await httpClient . post ( `/api/login` , {
80
+ username : username ,
81
+ password : 'Admin12345!' ,
82
+ } ) ;
83
+ } ;
84
+
48
85
const activateAPI7 = async ( ) => {
86
+ console . log ( 'Upload license' ) ;
49
87
await httpClient . put ( `/api/license` , {
50
88
data : process . env . BACKEND_API7_LICENSE ,
51
89
} ) ;
52
90
} ;
53
91
54
92
const generateToken = async ( ) => {
93
+ console . log ( 'Create test user' ) ;
94
+ const user = await httpClient . post ( `/api/invites` , {
95
+ username : 'test' ,
96
+ password : 'test' ,
97
+ } ) ;
98
+ const userId : string = user . data . value . id ;
99
+
100
+ console . log ( 'Update role' ) ;
101
+ await httpClient . put ( `/api/users/${ userId } /assigned_roles` , {
102
+ roles : [ 'super_admin_id' ] ,
103
+ } ) ;
104
+
105
+ //@ts -expect-error forced
106
+ httpClient . sessionToken = '' ;
107
+
108
+ console . log ( 'Log in to test user' ) ;
109
+ await initUser ( 'test' , 'test' ) ;
110
+
111
+ console . log ( 'Generate token' ) ;
55
112
const resp = await httpClient . post < { value : { token : string } } > (
56
113
`/api/tokens` ,
57
114
{
@@ -66,6 +123,7 @@ const generateToken = async () => {
66
123
67
124
export default async ( ) => {
68
125
if ( process . env [ 'SKIP_API7_SETUP' ] !== 'true' ) await setupAPI7 ( ) ;
126
+ await initUser ( ) ;
69
127
await activateAPI7 ( ) ;
70
128
await generateToken ( ) ;
71
129
0 commit comments