@@ -248,7 +248,6 @@ beforeAll(async () => {
248248 let insertRes = await ws . exec ( insert ) ;
249249 insert = insertStable ( tableCNValues , stableTags , stable ) ;
250250 insertRes = await ws . exec ( insert ) ;
251- await ws . exec ( "create user tmq_token_user pass 'token_pass_1'" ) ;
252251 await ws . exec ( `create topic if not exists ${ tokenTopic } as select * from ${ db } .${ stable } ` ) ;
253252 await ws . close ( ) ;
254253} ) ;
@@ -398,20 +397,69 @@ describe("TDWebSocket.Tmq()", () => {
398397
399398 testEnterprise ( "connect with token" , async ( ) => {
400399 const conf = new WSConfig ( dsn ) ;
401- conf . setUser ( testUsername ( ) ) ;
402- conf . setPwd ( testPassword ( ) ) ;
403400 const wsSql = await WsSql . open ( conf ) ;
404- const wsRows = await wsSql . query ( "create token test_tmq_token from user tmq_token_user" ) ;
401+ await wsSql . exec ( "drop token if exists test_tmq_token" ) ;
402+ const wsRows = await wsSql . query ( `create token test_tmq_token from user ${ testUsername ( ) } ` ) ;
405403 await wsRows . next ( ) ;
406404 const token = wsRows . getData ( ) ?. [ 0 ] as string ;
407405 expect ( token ) . toBeTruthy ( ) ;
408406 await wsRows . close ( ) ;
407+
408+ const tmqConf = new Map ( [
409+ [ TMQConstants . WS_URL , "ws://localhost:6041" ] ,
410+ [ TMQConstants . CONNECT_USER , "invalid_user" ] ,
411+ [ TMQConstants . CONNECT_PASS , "invalid_pass" ] ,
412+ [ TMQConstants . CONNECT_TOKEN , token ] ,
413+ [ TMQConstants . GROUP_ID , "g1101" ] ,
414+ [ TMQConstants . CLIENT_ID , "c1101" ] ,
415+ [ TMQConstants . AUTO_OFFSET_RESET , "earliest" ] ,
416+ [ TMQConstants . ENABLE_AUTO_COMMIT , "false" ] ,
417+ [ TMQConstants . AUTO_COMMIT_INTERVAL_MS , "1000" ] ,
418+ ] ) ;
419+ const consumer = await WsConsumer . newConsumer ( tmqConf ) ;
420+ await consumer . subscribe ( [ tokenTopic ] ) ;
421+
422+ let count : number = 0 ;
423+ for ( let i = 0 ; i < 5 ; i ++ ) {
424+ const res = await consumer . poll ( 500 ) ;
425+ for ( const [ , value ] of res ) {
426+ const data = value . getData ( ) ;
427+ if ( data == null || data . length == 0 ) {
428+ break ;
429+ }
430+ count += data . length ;
431+ }
432+ }
433+ expect ( count ) . toEqual ( 10 ) ;
434+
435+ await Sleep ( 3000 ) ;
436+ await consumer . unsubscribe ( ) ;
437+ await consumer . close ( ) ;
438+ await wsSql . exec ( "drop token if exists test_tmq_token" ) ;
409439 await wsSql . close ( ) ;
440+ } ) ;
441+
442+ testEnterprise ( "connect with token url" , async ( ) => {
443+ const conf = new WSConfig ( dsn ) ;
444+ const wsSql = await WsSql . open ( conf ) ;
445+ await wsSql . exec ( "drop token if exists test_tmq_token_url" ) ;
446+ const wsRows = await wsSql . query ( `create token test_tmq_token_url from user ${ testUsername ( ) } ` ) ;
447+ await wsRows . next ( ) ;
448+ const token = wsRows . getData ( ) ?. [ 0 ] as string ;
449+ expect ( token ) . toBeTruthy ( ) ;
450+ await wsRows . close ( ) ;
410451
411- const tokenConfigMap = new Map ( configMap ) ;
412- tokenConfigMap . set ( TMQConstants . CONNECT_TOKEN , token ) ;
413- tokenConfigMap . set ( TMQConstants . GROUP_ID , "token_group" ) ;
414- const consumer = await WsConsumer . newConsumer ( tokenConfigMap ) ;
452+ const tmqConf = new Map ( [
453+ [ TMQConstants . WS_URL , `ws://localhost:6041?bearer_token=${ token } ` ] ,
454+ [ TMQConstants . CONNECT_USER , "invalid_user" ] ,
455+ [ TMQConstants . CONNECT_PASS , "invalid_pass" ] ,
456+ [ TMQConstants . GROUP_ID , "g1103" ] ,
457+ [ TMQConstants . CLIENT_ID , "c1103" ] ,
458+ [ TMQConstants . AUTO_OFFSET_RESET , "earliest" ] ,
459+ [ TMQConstants . ENABLE_AUTO_COMMIT , "false" ] ,
460+ [ TMQConstants . AUTO_COMMIT_INTERVAL_MS , "1000" ] ,
461+ ] ) ;
462+ const consumer = await WsConsumer . newConsumer ( tmqConf ) ;
415463 await consumer . subscribe ( [ tokenTopic ] ) ;
416464
417465 let count : number = 0 ;
@@ -430,33 +478,35 @@ describe("TDWebSocket.Tmq()", () => {
430478 await Sleep ( 3000 ) ;
431479 await consumer . unsubscribe ( ) ;
432480 await consumer . close ( ) ;
481+ await wsSql . exec ( "drop token if exists test_tmq_token_url" ) ;
482+ await wsSql . close ( ) ;
433483 } ) ;
434484
435485 testEnterprise ( "connect with invalid token" , async ( ) => {
436- const tokenConfigMap = new Map ( [
437- [ TMQConstants . GROUP_ID , "token_group1 " ] ,
438- [ TMQConstants . CLIENT_ID , "token_client1 " ] ,
486+ const conf = new Map ( [
487+ [ TMQConstants . GROUP_ID , "g1102 " ] ,
488+ [ TMQConstants . CLIENT_ID , "c1102 " ] ,
439489 [ TMQConstants . WS_URL , "ws://localhost:6041?bearer_token=invalid_token" ] ,
440490 ] ) ;
441- await expect ( WsConsumer . newConsumer ( tokenConfigMap ) ) . rejects . toMatchObject ( {
491+ await expect ( WsConsumer . newConsumer ( conf ) ) . rejects . toMatchObject ( {
442492 message : expect . stringMatching ( / i n v a l i d t o k e n / i) ,
443493 } ) ;
444494
445- tokenConfigMap . set ( TMQConstants . WS_URL , "ws://localhost:6041" ) ;
446- tokenConfigMap . set ( TMQConstants . CONNECT_TOKEN , "invalid_token1" ) ;
447- await expect ( WsConsumer . newConsumer ( tokenConfigMap ) ) . rejects . toMatchObject ( {
495+ conf . set ( TMQConstants . WS_URL , "ws://localhost:6041" ) ;
496+ conf . set ( TMQConstants . CONNECT_TOKEN , "invalid_token1" ) ;
497+ await expect ( WsConsumer . newConsumer ( conf ) ) . rejects . toMatchObject ( {
448498 message : expect . stringMatching ( / i n v a l i d t o k e n / i) ,
449499 } ) ;
450500
451- tokenConfigMap . set ( TMQConstants . WS_URL , "ws://localhost:6041?bearer_token=" ) ;
452- tokenConfigMap . delete ( TMQConstants . CONNECT_TOKEN ) ;
453- await expect ( WsConsumer . newConsumer ( tokenConfigMap ) ) . rejects . toMatchObject ( {
501+ conf . set ( TMQConstants . WS_URL , "ws://localhost:6041?bearer_token=" ) ;
502+ conf . delete ( TMQConstants . CONNECT_TOKEN ) ;
503+ await expect ( WsConsumer . newConsumer ( conf ) ) . rejects . toMatchObject ( {
454504 message : expect . stringMatching ( / i n v a l i d u r l / i) ,
455505 } ) ;
456506
457- tokenConfigMap . set ( TMQConstants . WS_URL , "ws://localhost:6041" ) ;
458- tokenConfigMap . set ( TMQConstants . CONNECT_TOKEN , "" ) ;
459- await expect ( WsConsumer . newConsumer ( tokenConfigMap ) ) . rejects . toMatchObject ( {
507+ conf . set ( TMQConstants . WS_URL , "ws://localhost:6041" ) ;
508+ conf . set ( TMQConstants . CONNECT_TOKEN , "" ) ;
509+ await expect ( WsConsumer . newConsumer ( conf ) ) . rejects . toMatchObject ( {
460510 message : expect . stringMatching ( / i n v a l i d u r l / i) ,
461511 } ) ;
462512 } ) ;
@@ -469,7 +519,6 @@ afterAll(async () => {
469519 await ws . exec ( dropTopic ) ;
470520 await ws . exec ( `drop topic if exists ${ tokenTopic } ` ) ;
471521 await ws . exec ( dropDB ) ;
472- await ws . exec ( "drop user tmq_token_user" ) ;
473522 await ws . close ( ) ;
474523 WebSocketConnectionPool . instance ( ) . destroyed ( ) ;
475524} ) ;
0 commit comments