1- const openopsCommonMock = {
2- ...jest . requireActual ( '@openops/common' ) ,
3- authenticateDefaultUserInOpenOpsTables : jest . fn ( ) ,
4- } ;
5- jest . mock ( '@openops/common' , ( ) => openopsCommonMock ) ;
6-
71const createDatabaseTokenMock = jest . fn ( ) ;
82jest . mock ( '../../../src/app/openops-tables/index' , ( ) => {
93 return {
@@ -14,144 +8,97 @@ jest.mock('../../../src/app/openops-tables/index', () => {
148} ) ;
159
1610import { DatabaseToken } from '../../../src/app/openops-tables/create-database-token' ;
17- import { databaseTokenService } from '../../../src/app/openops-tables/database-token-service' ;
11+ import { generateDatabaseToken } from '../../../src/app/openops-tables/database-token-service' ;
1812
19- describe ( 'databaseTokenService ' , ( ) => {
13+ describe ( 'generateDatabaseToken ' , ( ) => {
2014 beforeEach ( ( ) => {
2115 jest . clearAllMocks ( ) ;
2216 } ) ;
2317
24- describe ( 'generateDatabaseToken' , ( ) => {
25- it ( 'should generate a database token with correct name prefix and parameters' , async ( ) => {
26- const projectId = 'test-project-123' ;
27- const workspaceId = 42 ;
28- const systemToken = 'test-system-token' ;
29- const mockToken : DatabaseToken = {
30- id : 1 ,
31- name : 'Project_test-project-123' ,
32- workspace : workspaceId ,
33- key : 'test-database-token-key' ,
34- permissions : {
35- create : true ,
36- read : true ,
37- update : true ,
38- delete : true ,
39- } ,
40- } ;
18+ it ( 'should generate a database token with correct name prefix and parameters' , async ( ) => {
19+ const systemToken = 'test-system-token' ;
20+ const projectId = 'test-project-123' ;
21+ const workspaceId = 42 ;
22+ const mockToken : DatabaseToken = {
23+ id : 1 ,
24+ name : 'Project_test-project-123' ,
25+ workspace : workspaceId ,
26+ key : 'test-database-token-key' ,
27+ permissions : {
28+ create : true ,
29+ read : true ,
30+ update : true ,
31+ delete : true ,
32+ } ,
33+ } ;
4134
42- openopsCommonMock . authenticateDefaultUserInOpenOpsTables . mockResolvedValue (
43- {
44- token : systemToken ,
45- } ,
46- ) ;
47- createDatabaseTokenMock . mockResolvedValue ( mockToken ) ;
35+ createDatabaseTokenMock . mockResolvedValue ( mockToken ) ;
4836
49- const result = await databaseTokenService . generateDatabaseToken (
50- projectId ,
51- workspaceId ,
52- ) ;
37+ const result = await generateDatabaseToken (
38+ systemToken ,
39+ projectId ,
40+ workspaceId ,
41+ ) ;
5342
54- expect ( result ) . toEqual ( mockToken ) ;
55- expect (
56- openopsCommonMock . authenticateDefaultUserInOpenOpsTables ,
57- ) . toHaveBeenCalledTimes ( 1 ) ;
58- expect ( createDatabaseTokenMock ) . toHaveBeenCalledTimes ( 1 ) ;
59- expect ( createDatabaseTokenMock ) . toHaveBeenCalledWith ( {
60- name : 'Project_test-project-123' ,
61- workspaceId,
62- systemToken,
63- } ) ;
43+ expect ( result ) . toEqual ( mockToken ) ;
44+ expect ( createDatabaseTokenMock ) . toHaveBeenCalledTimes ( 1 ) ;
45+ expect ( createDatabaseTokenMock ) . toHaveBeenCalledWith ( {
46+ name : 'Project_test-project-123' ,
47+ workspaceId,
48+ systemToken,
6449 } ) ;
50+ } ) ;
6551
66- it ( 'should handle different project IDs correctly' , async ( ) => {
67- const projectId = 'another-project ' ;
68- const workspaceId = 100 ;
69- const systemToken = 'another-token' ;
70- const mockToken : DatabaseToken = {
71- id : 2 ,
72- name : 'Project_another-project' ,
73- workspace : workspaceId ,
74- key : 'another-key' ,
75- permissions : {
76- create : true ,
77- read : true ,
78- update : false ,
79- delete : false ,
80- } ,
81- } ;
52+ it ( 'should handle different project IDs correctly' , async ( ) => {
53+ const systemToken = 'another-token ' ;
54+ const projectId = 'another-project' ;
55+ const workspaceId = 100 ;
56+ const mockToken : DatabaseToken = {
57+ id : 2 ,
58+ name : 'Project_another-project' ,
59+ workspace : workspaceId ,
60+ key : 'another-key' ,
61+ permissions : {
62+ create : true ,
63+ read : true ,
64+ update : false ,
65+ delete : false ,
66+ } ,
67+ } ;
8268
83- openopsCommonMock . authenticateDefaultUserInOpenOpsTables . mockResolvedValue (
84- {
85- token : systemToken ,
86- } ,
87- ) ;
88- createDatabaseTokenMock . mockResolvedValue ( mockToken ) ;
69+ createDatabaseTokenMock . mockResolvedValue ( mockToken ) ;
8970
90- const result = await databaseTokenService . generateDatabaseToken (
91- projectId ,
92- workspaceId ,
93- ) ;
71+ const result = await generateDatabaseToken (
72+ systemToken ,
73+ projectId ,
74+ workspaceId ,
75+ ) ;
9476
95- expect ( result ) . toEqual ( mockToken ) ;
96- expect ( createDatabaseTokenMock ) . toHaveBeenCalledWith ( {
97- name : 'Project_another-project' ,
98- workspaceId,
99- systemToken,
100- } ) ;
77+ expect ( result ) . toEqual ( mockToken ) ;
78+ expect ( createDatabaseTokenMock ) . toHaveBeenCalledWith ( {
79+ name : 'Project_another-project' ,
80+ workspaceId,
81+ systemToken,
10182 } ) ;
83+ } ) ;
10284
103- it . each ( [
104- {
105- description : 'from authenticateDefaultUserInOpenOpsTables' ,
106- setupMocks : ( ) : void => {
107- openopsCommonMock . authenticateDefaultUserInOpenOpsTables . mockRejectedValue (
108- new Error ( 'Authentication failed' ) ,
109- ) ;
110- } ,
111- errorMessage : 'Authentication failed' ,
112- expectedAuthCalls : 1 ,
113- expectedCreateTokenCalls : 0 ,
114- } ,
115- {
116- description : 'from createDatabaseToken' ,
117- setupMocks : ( ) : void => {
118- openopsCommonMock . authenticateDefaultUserInOpenOpsTables . mockResolvedValue (
119- {
120- token : 'test-token' ,
121- } ,
122- ) ;
123- createDatabaseTokenMock . mockRejectedValue (
124- new Error ( 'Token creation failed' ) ,
125- ) ;
126- } ,
127- errorMessage : 'Token creation failed' ,
128- expectedAuthCalls : 1 ,
129- expectedCreateTokenCalls : 1 ,
130- } ,
131- ] ) (
132- 'should propagate errors $description' ,
133- async ( {
134- setupMocks,
135- errorMessage,
136- expectedAuthCalls,
137- expectedCreateTokenCalls,
138- } ) => {
139- const projectId = 'test-project' ;
140- const workspaceId = 1 ;
85+ it ( 'should propagate errors from createDatabaseToken' , async ( ) => {
86+ const systemToken = 'test-token' ;
87+ const projectId = 'test-project' ;
88+ const workspaceId = 1 ;
89+ const createError = new Error ( 'Token creation failed' ) ;
14190
142- setupMocks ( ) ;
91+ createDatabaseTokenMock . mockRejectedValue ( createError ) ;
14392
144- await expect (
145- databaseTokenService . generateDatabaseToken ( projectId , workspaceId ) ,
146- ) . rejects . toThrow ( errorMessage ) ;
93+ await expect (
94+ generateDatabaseToken ( systemToken , projectId , workspaceId ) ,
95+ ) . rejects . toThrow ( 'Token creation failed' ) ;
14796
148- expect (
149- openopsCommonMock . authenticateDefaultUserInOpenOpsTables ,
150- ) . toHaveBeenCalledTimes ( expectedAuthCalls ) ;
151- expect ( createDatabaseTokenMock ) . toHaveBeenCalledTimes (
152- expectedCreateTokenCalls ,
153- ) ;
154- } ,
155- ) ;
97+ expect ( createDatabaseTokenMock ) . toHaveBeenCalledTimes ( 1 ) ;
98+ expect ( createDatabaseTokenMock ) . toHaveBeenCalledWith ( {
99+ name : 'Project_test-project' ,
100+ workspaceId,
101+ systemToken,
102+ } ) ;
156103 } ) ;
157104} ) ;
0 commit comments