@@ -108,7 +108,7 @@ describe('page/BindUser-ee', () => {
108108 ) ;
109109 } ) ;
110110
111- it ( 'render oauth2_token params submit' , async ( ) => {
111+ it ( 'render oauth2_token params submit without target param ' , async ( ) => {
112112 const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
113113 const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val` ;
114114 const requestFn = dms . bindUser ( ) ;
@@ -157,6 +157,113 @@ describe('page/BindUser-ee', () => {
157157 CompanyNoticeDisplayStatusEnum . NotDisplayed
158158 ) ;
159159 } ) ;
160+
161+ it ( 'render oauth2_token params submit with target param' , async ( ) => {
162+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
163+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
164+ '/project/test'
165+ ) } `;
166+ const requestFn = dms . bindUser ( ) ;
167+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
168+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
169+
170+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
171+ target : {
172+ value : 'oauth2_admin'
173+ }
174+ } ) ;
175+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
176+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
177+ target : {
178+ value : 'oauth2_admin'
179+ }
180+ } ) ;
181+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
182+
183+ await act ( async ( ) => {
184+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
185+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
186+ } ) ;
187+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
188+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
189+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
190+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
191+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
192+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test' ) ;
193+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
194+ } ) ;
195+
196+ it ( 'render oauth2_token params submit with target param containing query params' , async ( ) => {
197+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
198+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
199+ '/project/test?active=overview'
200+ ) } `;
201+ const requestFn = dms . bindUser ( ) ;
202+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
203+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
204+
205+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
206+ target : {
207+ value : 'oauth2_admin'
208+ }
209+ } ) ;
210+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
211+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
212+ target : {
213+ value : 'oauth2_admin'
214+ }
215+ } ) ;
216+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
217+
218+ await act ( async ( ) => {
219+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
220+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
221+ } ) ;
222+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
223+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
224+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
225+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
226+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
227+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test?active=overview' ) ;
228+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
229+ } ) ;
230+
231+ it ( 'render oauth2_token params submit with cloud-beaver target param' , async ( ) => {
232+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
233+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
234+ '/cloud-beaver'
235+ ) } `;
236+ const requestFn = dms . bindUser ( ) ;
237+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
238+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
239+
240+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
241+ target : {
242+ value : 'oauth2_admin'
243+ }
244+ } ) ;
245+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
246+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
247+ target : {
248+ value : 'oauth2_admin'
249+ }
250+ } ) ;
251+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
252+
253+ await act ( async ( ) => {
254+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
255+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
256+ } ) ;
257+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
258+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
259+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
260+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
261+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
262+ expect ( navigateSpy ) . toHaveBeenCalledWith (
263+ '/cloud-beaver?open_cloud_beaver=true'
264+ ) ;
265+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
266+ } ) ;
160267 } ) ;
161268
162269 describe ( 'render url have search val' , ( ) => {
@@ -226,6 +333,16 @@ describe('page/BindUser-ee', () => {
226333 } ) ;
227334 } ) ;
228335
336+ it ( 'render oauth2_token params submit with target param' , async ( ) => {
337+ const search = `dms_token=oauth2_token_val&user_exist=true&refresh_token=id_token_val&target=${ encodeURIComponent (
338+ '/project/test'
339+ ) } `;
340+ customRender ( `/user/bind?${ search } ` ) ;
341+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
342+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
343+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test' ) ;
344+ } ) ;
345+
229346 it ( 'render login snap when current browser is not chrome' , async ( ) => {
230347 const eventEmitSpy = jest . spyOn ( eventEmitter , 'emit' ) ;
231348 const userAgentGetter = jest . spyOn ( window . navigator , 'userAgent' , 'get' ) ;
0 commit comments