16
16
17
17
import * as assert from 'assert' ;
18
18
import { TagMap } from '../src/tags/tag-map' ;
19
+ import { TagTtl } from '../src/tags/types' ;
19
20
20
21
describe ( 'TagMap()' , ( ) => {
21
22
let tagMap : TagMap ;
@@ -25,19 +26,56 @@ describe('TagMap()', () => {
25
26
const value1 = { value : 'value1' } ;
26
27
const value2 = { value : 'value2' } ;
27
28
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
+ } ;
28
41
29
42
beforeEach ( ( ) => {
30
43
tagMap = new TagMap ( ) ;
31
44
} ) ;
32
45
33
46
describe ( 'set()' , ( ) => {
34
- it ( 'should set tagkey and tagvalue' , ( ) => {
47
+ it ( 'should set tagkey and tagvalue with default TagMetadata ' , ( ) => {
35
48
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 ;
37
62
assert . equal ( tags . size , 1 ) ;
38
- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
63
+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata ) ;
39
64
} ) ;
40
65
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
+
41
79
it ( 'should throw an error when invalid tagKey' , ( ) => {
42
80
assert . throws ( ( ) => {
43
81
tagMap . set ( invalidKey1 , value1 ) ;
@@ -52,34 +90,34 @@ describe('TagMap()', () => {
52
90
53
91
it ( 'should not set duplicate tagkey and tagvalue' , ( ) => {
54
92
tagMap . set ( key1 , value1 ) ;
55
- const tags = tagMap . tags ;
93
+ const tags = tagMap . tagsWithMetadata ;
56
94
assert . equal ( tags . size , 1 ) ;
57
- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
95
+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata1 ) ;
58
96
tagMap . set ( key1 , value1 ) ;
59
97
assert . equal ( tags . size , 1 ) ;
60
98
} ) ;
61
99
62
100
it ( 'should update existing tagkey' , ( ) => {
63
101
tagMap . set ( key1 , value1 ) ;
64
- const tags = tagMap . tags ;
102
+ const tags = tagMap . tagsWithMetadata ;
65
103
assert . equal ( tags . size , 1 ) ;
66
- assert . deepStrictEqual ( tags . get ( key1 ) , value1 ) ;
104
+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata1 ) ;
67
105
tagMap . set ( key1 , value2 ) ;
68
106
assert . equal ( tags . size , 1 ) ;
69
- assert . deepStrictEqual ( tags . get ( key1 ) , value2 ) ;
107
+ assert . deepStrictEqual ( tags . get ( key1 ) , expectedTagValueWithMetadata2 ) ;
70
108
} ) ;
71
109
} ) ;
72
110
describe ( 'delete()' , ( ) => {
73
111
it ( 'should delete tagkey' , ( ) => {
74
112
tagMap . set ( key1 , value1 ) ;
75
- const tags = tagMap . tags ;
113
+ const tags = tagMap . tagsWithMetadata ;
76
114
assert . equal ( tags . size , 1 ) ;
77
115
tagMap . delete ( key1 ) ;
78
116
assert . equal ( tags . size , 0 ) ;
79
117
} ) ;
80
118
it ( 'should delete missing tagkey1' , ( ) => {
81
119
tagMap . set ( key1 , value1 ) ;
82
- const tags = tagMap . tags ;
120
+ const tags = tagMap . tagsWithMetadata ;
83
121
assert . equal ( tags . size , 1 ) ;
84
122
tagMap . delete ( key2 ) ;
85
123
assert . equal ( tags . size , 1 ) ;
0 commit comments