@@ -102,7 +102,7 @@ describe('page/BindUser-ee', () => {
102102 ) ;
103103 } ) ;
104104
105- it ( 'render oauth2_token params submit' , async ( ) => {
105+ it ( 'render oauth2_token params submit without target param ' , async ( ) => {
106106 const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
107107 const search = `oauth2_token=oauth2_token_val&id_token=id_token_val` ;
108108 const requestFn = dms . bindUser ( ) ;
@@ -151,6 +151,113 @@ describe('page/BindUser-ee', () => {
151151 CompanyNoticeDisplayStatusEnum . NotDisplayed
152152 ) ;
153153 } ) ;
154+
155+ it ( 'render oauth2_token params submit with target param' , async ( ) => {
156+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
157+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
158+ '/project/test'
159+ ) } `;
160+ const requestFn = dms . bindUser ( ) ;
161+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
162+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
163+
164+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
165+ target : {
166+ value : 'oauth2_admin'
167+ }
168+ } ) ;
169+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
170+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
171+ target : {
172+ value : 'oauth2_admin'
173+ }
174+ } ) ;
175+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
176+
177+ await act ( async ( ) => {
178+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
179+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
180+ } ) ;
181+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
182+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
183+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
184+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
185+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
186+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test' ) ;
187+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
188+ } ) ;
189+
190+ it ( 'render oauth2_token params submit with target param containing query params' , async ( ) => {
191+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
192+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
193+ '/project/test?active=overview'
194+ ) } `;
195+ const requestFn = dms . bindUser ( ) ;
196+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
197+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
198+
199+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
200+ target : {
201+ value : 'oauth2_admin'
202+ }
203+ } ) ;
204+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
205+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
206+ target : {
207+ value : 'oauth2_admin'
208+ }
209+ } ) ;
210+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
211+
212+ await act ( async ( ) => {
213+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
214+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
215+ } ) ;
216+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
217+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
218+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
219+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
220+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
221+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test?active=overview' ) ;
222+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
223+ } ) ;
224+
225+ it ( 'render oauth2_token params submit with cloud-beaver target param' , async ( ) => {
226+ const LocalStorageWrapperSet = jest . spyOn ( LocalStorageWrapper , 'set' ) ;
227+ const search = `oauth2_token=oauth2_token_val&refresh_token=id_token_val&target=${ encodeURIComponent (
228+ '/cloud-beaver'
229+ ) } `;
230+ const requestFn = dms . bindUser ( ) ;
231+ const { baseElement } = customRender ( `/user/bind?${ search } ` ) ;
232+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
233+
234+ fireEvent . change ( getBySelector ( '#username' , baseElement ) , {
235+ target : {
236+ value : 'oauth2_admin'
237+ }
238+ } ) ;
239+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
240+ fireEvent . change ( getBySelector ( '#password' , baseElement ) , {
241+ target : {
242+ value : 'oauth2_admin'
243+ }
244+ } ) ;
245+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
246+
247+ await act ( async ( ) => {
248+ fireEvent . click ( getBySelector ( '.login-btn' , baseElement ) ) ;
249+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
250+ } ) ;
251+ await act ( async ( ) => jest . advanceTimersByTime ( 3000 ) ) ;
252+ expect ( requestFn ) . toHaveBeenCalled ( ) ;
253+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
254+ expect ( dispatchSpy ) . toHaveBeenCalledTimes ( 1 ) ;
255+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
256+ expect ( navigateSpy ) . toHaveBeenCalledWith (
257+ '/cloud-beaver?open_cloud_beaver=true'
258+ ) ;
259+ expect ( LocalStorageWrapperSet ) . toHaveBeenCalled ( ) ;
260+ } ) ;
154261 } ) ;
155262
156263 describe ( 'render url have search val' , ( ) => {
@@ -210,6 +317,16 @@ describe('page/BindUser-ee', () => {
210317 } ) ;
211318 } ) ;
212319
320+ it ( 'render oauth2_token params submit with target param' , async ( ) => {
321+ const search = `dms_token=oauth2_token_val&user_exist=true&refresh_token=id_token_val&target=${ encodeURIComponent (
322+ '/project/test'
323+ ) } `;
324+ customRender ( `/user/bind?${ search } ` ) ;
325+ await act ( async ( ) => jest . advanceTimersByTime ( 300 ) ) ;
326+ expect ( navigateSpy ) . toHaveBeenCalled ( ) ;
327+ expect ( navigateSpy ) . toHaveBeenCalledWith ( '/project/test' ) ;
328+ } ) ;
329+
213330 it ( 'render login snap when current browser is not chrome' , async ( ) => {
214331 const eventEmitSpy = jest . spyOn ( eventEmitter , 'emit' ) ;
215332 const userAgentGetter = jest . spyOn ( window . navigator , 'userAgent' , 'get' ) ;
0 commit comments