1616
1717import * as assert from 'assert' ;
1818import { TagMap } from '../src/tags/tag-map' ;
19+ import { TagTtl } from '../src/tags/types' ;
1920
2021describe ( 'TagMap()' , ( ) => {
2122 let tagMap : TagMap ;
@@ -25,19 +26,56 @@ describe('TagMap()', () => {
2526 const value1 = { value : 'value1' } ;
2627 const value2 = { value : 'value2' } ;
2728 const invalidValue1 = { value : 'a' . repeat ( 256 ) } ;
29+ const NO_PROPAGATION_MD = { tagTtl : TagTtl . NO_PROPAGATION } ;
30+ const UNLIMITED_PROPAGATION_MD = { tagTtl : TagTtl . UNLIMITED_PROPAGATION } ;
31+
32+ const expectedTagValueWithMetadata1 = {
33+ tagValue : { value : 'value1' } ,
34+ tagMetadata : { tagTtl : - 1 }
35+ } ;
36+
37+ const expectedTagValueWithMetadata2 = {
38+ tagValue : { value : 'value2' } ,
39+ tagMetadata : { tagTtl : - 1 }
40+ } ;
2841
2942 beforeEach ( ( ) => {
3043 tagMap = new TagMap ( ) ;
3144 } ) ;
3245
3346 describe ( 'set()' , ( ) => {
34- it ( 'should set tagkey and tagvalue' , ( ) => {
47+ it ( 'should set tagkey and tagvalue with default TagMetadata ' , ( ) => {
3548 tagMap . set ( key1 , value1 ) ;
36- const tags = tagMap . tags ;
49+ const tags = tagMap . tagsWithMetadata ;
50+ assert . equal ( tags . size , 1 ) ;
51+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata1 ) ;
52+ } ) ;
53+
54+ it ( 'should set tagkey and tagvalue with NO_PROPAGATION TagTtl' , ( ) => {
55+ const expectedTagValueWithMetadata = {
56+ tagValue : { value : 'value1' } ,
57+ tagMetadata : { tagTtl : 0 }
58+ } ;
59+
60+ tagMap . set ( key1 , value1 , NO_PROPAGATION_MD ) ;
61+ const tags = tagMap . tagsWithMetadata ;
3762 assert . equal ( tags . size , 1 ) ;
38- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
63+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata ) ;
3964 } ) ;
4065
66+ it ( 'should set tagkey and tagvalue with UNLIMITED_PROPAGATION TagTtl' ,
67+ ( ) => {
68+ const expectedTagValueWithMetadata = {
69+ tagValue : { value : 'value1' } ,
70+ tagMetadata : { tagTtl : - 1 }
71+ } ;
72+
73+ tagMap . set ( key1 , value1 , UNLIMITED_PROPAGATION_MD ) ;
74+ const tags = tagMap . tagsWithMetadata ;
75+ assert . equal ( tags . size , 1 ) ;
76+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata ) ;
77+ } ) ;
78+
4179 it ( 'should throw an error when invalid tagKey' , ( ) => {
4280 assert . throws ( ( ) => {
4381 tagMap . set ( invalidKey1 , value1 ) ;
@@ -52,34 +90,34 @@ describe('TagMap()', () => {
5290
5391 it ( 'should not set duplicate tagkey and tagvalue' , ( ) => {
5492 tagMap . set ( key1 , value1 ) ;
55- const tags = tagMap . tags ;
93+ const tags = tagMap . tagsWithMetadata ;
5694 assert . equal ( tags . size , 1 ) ;
57- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
95+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata1 ) ;
5896 tagMap . set ( key1 , value1 ) ;
5997 assert . equal ( tags . size , 1 ) ;
6098 } ) ;
6199
62100 it ( 'should update existing tagkey' , ( ) => {
63101 tagMap . set ( key1 , value1 ) ;
64- const tags = tagMap . tags ;
102+ const tags = tagMap . tagsWithMetadata ;
65103 assert . equal ( tags . size , 1 ) ;
66- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
104+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata1 ) ;
67105 tagMap . set ( key1 , value2 ) ;
68106 assert . equal ( tags . size , 1 ) ;
69- assert . deepStrictEqual ( tags . get ( key1 ) , value2 ) ;
107+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata2 ) ;
70108 } ) ;
71109 } ) ;
72110 describe ( 'delete()' , ( ) => {
73111 it ( 'should delete tagkey' , ( ) => {
74112 tagMap . set ( key1 , value1 ) ;
75- const tags = tagMap . tags ;
113+ const tags = tagMap . tagsWithMetadata ;
76114 assert . equal ( tags . size , 1 ) ;
77115 tagMap . delete ( key1 ) ;
78116 assert . equal ( tags . size , 0 ) ;
79117 } ) ;
80118 it ( 'should delete missing tagkey1' , ( ) => {
81119 tagMap . set ( key1 , value1 ) ;
82- const tags = tagMap . tags ;
120+ const tags = tagMap . tagsWithMetadata ;
83121 assert . equal ( tags . size , 1 ) ;
84122 tagMap . delete ( key2 ) ;
85123 assert . equal ( tags . size , 1 ) ;
0 commit comments