Skip to content

Commit b51f996

Browse files
committed
increase semantic token provider test coverage
1 parent 29e7fc1 commit b51f996

File tree

5 files changed

+665
-32
lines changed

5 files changed

+665
-32
lines changed

test/parsing/boundedContext/AggregateParsing.test.ts

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ describe('Aggregate parsing tests', () => {
7171
expect(aggregate.responsibilities[0]).toEqual('resp1')
7272
expect(aggregate.responsibilities[1]).toEqual('resp2')
7373
expect(aggregate.owner).not.toBeUndefined()
74-
expect(aggregate.userRequirements).toHaveLength(1)
74+
expect(aggregate.userRequirements).toHaveLength(0)
75+
expect(aggregate.userStories).toHaveLength(0)
76+
expect(aggregate.useCases).toHaveLength(1)
7577
expect(aggregate.knowledgeLevel).toEqual('META')
7678
expect(aggregate.contentVolatility).toEqual('RARELY')
7779
expect(aggregate.likelihoodForChange).toEqual('NORMAL')
@@ -109,7 +111,10 @@ describe('Aggregate parsing tests', () => {
109111

110112
expect(document.parseResult.value.boundedContexts).toHaveLength(1)
111113
expect(document.parseResult.value.boundedContexts[0].aggregates).toHaveLength(1)
112-
expect(document.parseResult.value.boundedContexts[0].aggregates[0].userRequirements).toHaveLength(1)
114+
const aggregate = document.parseResult.value.boundedContexts[0].aggregates[0]
115+
expect(aggregate.userStories).toHaveLength(1)
116+
expect(aggregate.userRequirements).toHaveLength(0)
117+
expect(aggregate.useCases).toHaveLength(0)
113118
})
114119

115120
test('parse features', async () => {
@@ -125,7 +130,10 @@ describe('Aggregate parsing tests', () => {
125130

126131
expect(document.parseResult.value.boundedContexts).toHaveLength(1)
127132
expect(document.parseResult.value.boundedContexts[0].aggregates).toHaveLength(1)
128-
expect(document.parseResult.value.boundedContexts[0].aggregates[0].userRequirements).toHaveLength(2)
133+
const aggregate = document.parseResult.value.boundedContexts[0].aggregates[0]
134+
expect(aggregate.userStories).toHaveLength(0)
135+
expect(aggregate.userRequirements).toHaveLength(2)
136+
expect(aggregate.useCases).toHaveLength(0)
129137
})
130138

131139
test('parse userRequirements', async () => {
@@ -150,6 +158,8 @@ function expectAggregateToBeEmpty (aggregate: Aggregate) {
150158
expect(aggregate.name).toEqual('TestAggregate')
151159
expect(aggregate.responsibilities).toHaveLength(0)
152160
expect(aggregate.userRequirements).toHaveLength(0)
161+
expect(aggregate.useCases).toHaveLength(0)
162+
expect(aggregate.userStories).toHaveLength(0)
153163
expect(aggregate.owner).toBeUndefined()
154164
expect(aggregate.knowledgeLevel).toBeUndefined()
155165
expect(aggregate.likelihoodForChange).toBeUndefined()

test/parsing/vdad/ValueRegisterParsing.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ beforeAll(async () => {
2020
parse = parseHelper<ContextMappingModel>(services.ContextMapperDsl)
2121
})
2222

23-
describe('Value cluster parsing tests', () => {
23+
describe('Value register parsing tests', () => {
2424
test('parse value register without body', async () => {
2525
document = await parseValidInput(parse, `
2626
ValueRegister TestRegister

test/semnantictokens/boundedContext/AggregateSemanticTokenProvider.test.ts

Lines changed: 94 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ describe('Aggregate semantic token tests', () => {
5656
test('check semantic tokens for Aggregate with full body', async () => {
5757
document = await parse(`
5858
BoundedContext TestContext {
59+
"doc"
5960
Aggregate TestAggregate {
6061
responsibilities "resp1", "resp2"
6162
owner = TestContext
@@ -77,61 +78,126 @@ describe('Aggregate semantic token tests', () => {
7778

7879
const result = await semanticTokenProvider.semanticHighlight(document, params)
7980

80-
const expectedNumberOfTokens = 31
81+
const expectedNumberOfTokens = 32
8182
expectSemanticTokensToHaveLength(result, expectedNumberOfTokens)
8283
const tokens = extractSemanticTokens(result, expectedNumberOfTokens)
8384

84-
expectSemanticTokensToEqual(tokens[2], 1, 8, 9, semanticTokenProvider.tokenTypes.keyword, 0)
85-
expectSemanticTokensToEqual(tokens[3], 0, 10, 13, semanticTokenProvider.tokenTypes.type, semanticTokenProvider.tokenModifiers.declaration)
85+
expectSemanticTokensToEqual(tokens[2], 1, 8, 5, semanticTokenProvider.tokenTypes.string, 0)
86+
87+
expectSemanticTokensToEqual(tokens[3], 1, 8, 9, semanticTokenProvider.tokenTypes.keyword, 0)
88+
expectSemanticTokensToEqual(tokens[4], 0, 10, 13, semanticTokenProvider.tokenTypes.type, semanticTokenProvider.tokenModifiers.declaration)
8689

8790
// responsibilities
88-
expectSemanticTokensToEqual(tokens[4], 1, 10, 16, semanticTokenProvider.tokenTypes.keyword, 0)
89-
expectSemanticTokensToEqual(tokens[5], 0, 17, 7, semanticTokenProvider.tokenTypes.string, 0)
90-
expectSemanticTokensToEqual(tokens[6], 0, 9, 7, semanticTokenProvider.tokenTypes.string, 0)
91+
expectSemanticTokensToEqual(tokens[5], 1, 10, 16, semanticTokenProvider.tokenTypes.keyword, 0)
92+
expectSemanticTokensToEqual(tokens[6], 0, 17, 7, semanticTokenProvider.tokenTypes.string, 0)
93+
expectSemanticTokensToEqual(tokens[7], 0, 9, 7, semanticTokenProvider.tokenTypes.string, 0)
9194

9295
// owner
93-
expectSemanticTokensToEqual(tokens[7], 1, 10, 5, semanticTokenProvider.tokenTypes.keyword, 0)
94-
expectSemanticTokensToEqual(tokens[8], 0, 8, 11, semanticTokenProvider.tokenTypes.type, 0)
96+
expectSemanticTokensToEqual(tokens[8], 1, 10, 5, semanticTokenProvider.tokenTypes.keyword, 0)
97+
expectSemanticTokensToEqual(tokens[9], 0, 8, 11, semanticTokenProvider.tokenTypes.type, 0)
9598

9699
// useCases
97-
expectSemanticTokensToEqual(tokens[9], 1, 10, 8, semanticTokenProvider.tokenTypes.keyword, 0)
98-
expectSemanticTokensToEqual(tokens[10], 0, 9, 11, semanticTokenProvider.tokenTypes.type, 0)
100+
expectSemanticTokensToEqual(tokens[10], 1, 10, 8, semanticTokenProvider.tokenTypes.keyword, 0)
101+
expectSemanticTokensToEqual(tokens[11], 0, 9, 11, semanticTokenProvider.tokenTypes.type, 0)
99102

100103
// knowledgeLevel
101-
expectSemanticTokensToEqual(tokens[11], 1, 10, 14, semanticTokenProvider.tokenTypes.keyword, 0)
102-
expectSemanticTokensToEqual(tokens[12], 0, 17, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
104+
expectSemanticTokensToEqual(tokens[12], 1, 10, 14, semanticTokenProvider.tokenTypes.keyword, 0)
105+
expectSemanticTokensToEqual(tokens[13], 0, 17, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
103106

104107
// contentVolatility
105-
expectSemanticTokensToEqual(tokens[13], 1, 10, 17, semanticTokenProvider.tokenTypes.keyword, 0)
106-
expectSemanticTokensToEqual(tokens[14], 0, 20, 6, semanticTokenProvider.tokenTypes.enumMember, 0)
108+
expectSemanticTokensToEqual(tokens[14], 1, 10, 17, semanticTokenProvider.tokenTypes.keyword, 0)
109+
expectSemanticTokensToEqual(tokens[15], 0, 20, 6, semanticTokenProvider.tokenTypes.enumMember, 0)
107110

108111
// likelihoodForChange
109-
expectSemanticTokensToEqual(tokens[15], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
110-
expectSemanticTokensToEqual(tokens[16], 0, 22, 6, semanticTokenProvider.tokenTypes.enumMember, 0)
112+
expectSemanticTokensToEqual(tokens[16], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
113+
expectSemanticTokensToEqual(tokens[17], 0, 22, 6, semanticTokenProvider.tokenTypes.enumMember, 0)
111114

112115
// availabilityCriticality
113-
expectSemanticTokensToEqual(tokens[17], 1, 10, 23, semanticTokenProvider.tokenTypes.keyword, 0)
114-
expectSemanticTokensToEqual(tokens[18], 0, 26, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
116+
expectSemanticTokensToEqual(tokens[18], 1, 10, 23, semanticTokenProvider.tokenTypes.keyword, 0)
117+
expectSemanticTokensToEqual(tokens[19], 0, 26, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
115118

116119
// consistencyCriticality
117-
expectSemanticTokensToEqual(tokens[19], 1, 10, 22, semanticTokenProvider.tokenTypes.keyword, 0)
118-
expectSemanticTokensToEqual(tokens[20], 0, 25, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
120+
expectSemanticTokensToEqual(tokens[20], 1, 10, 22, semanticTokenProvider.tokenTypes.keyword, 0)
121+
expectSemanticTokensToEqual(tokens[21], 0, 25, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
119122

120123
// securityZone
121-
expectSemanticTokensToEqual(tokens[21], 1, 10, 12, semanticTokenProvider.tokenTypes.keyword, 0)
122-
expectSemanticTokensToEqual(tokens[22], 0, 13, 10, semanticTokenProvider.tokenTypes.string, 0)
124+
expectSemanticTokensToEqual(tokens[22], 1, 10, 12, semanticTokenProvider.tokenTypes.keyword, 0)
125+
expectSemanticTokensToEqual(tokens[23], 0, 13, 10, semanticTokenProvider.tokenTypes.string, 0)
123126

124127
// securityCriticality
125-
expectSemanticTokensToEqual(tokens[23], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
126-
expectSemanticTokensToEqual(tokens[24], 0, 22, 3, semanticTokenProvider.tokenTypes.enumMember, 0)
128+
expectSemanticTokensToEqual(tokens[24], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
129+
expectSemanticTokensToEqual(tokens[25], 0, 22, 3, semanticTokenProvider.tokenTypes.enumMember, 0)
127130

128131
// securityAccessGroup
129-
expectSemanticTokensToEqual(tokens[25], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
130-
expectSemanticTokensToEqual(tokens[26], 0, 22, 11, semanticTokenProvider.tokenTypes.string, 0)
132+
expectSemanticTokensToEqual(tokens[26], 1, 10, 19, semanticTokenProvider.tokenTypes.keyword, 0)
133+
expectSemanticTokensToEqual(tokens[27], 0, 22, 11, semanticTokenProvider.tokenTypes.string, 0)
131134

132135
// storageSimilarity
133-
expectSemanticTokensToEqual(tokens[27], 1, 10, 17, semanticTokenProvider.tokenTypes.keyword, 0)
134-
expectSemanticTokensToEqual(tokens[28], 0, 20, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
136+
expectSemanticTokensToEqual(tokens[28], 1, 10, 17, semanticTokenProvider.tokenTypes.keyword, 0)
137+
expectSemanticTokensToEqual(tokens[29], 0, 20, 4, semanticTokenProvider.tokenTypes.enumMember, 0)
138+
})
139+
140+
test('check semantic tokens for Aggregate with UserStory', async () => {
141+
document = await parse(`
142+
BoundedContext TestContext {
143+
Aggregate TestAggregate {
144+
userStories = TestStory
145+
}
146+
}
147+
UserStory TestStory
148+
`)
149+
const params = createSemanticTokenParams(document)
150+
151+
const result = await semanticTokenProvider.semanticHighlight(document, params)
152+
153+
const expectedNumberOfTokens = 8
154+
expectSemanticTokensToHaveLength(result, expectedNumberOfTokens)
155+
const tokens = extractSemanticTokens(result, expectedNumberOfTokens)
156+
157+
expectSemanticTokensToEqual(tokens[4], 1, 10, 11, semanticTokenProvider.tokenTypes.keyword, 0)
158+
expectSemanticTokensToEqual(tokens[5], 0, 14, 9, semanticTokenProvider.tokenTypes.type, 0)
159+
})
160+
161+
test('check semantic tokens for Aggregate with features', async () => {
162+
document = await parse(`
163+
BoundedContext TestContext {
164+
Aggregate TestAggregate {
165+
features TestStory
166+
}
167+
}
168+
UserStory TestStory
169+
`)
170+
const params = createSemanticTokenParams(document)
171+
172+
const result = await semanticTokenProvider.semanticHighlight(document, params)
173+
174+
const expectedNumberOfTokens = 8
175+
expectSemanticTokensToHaveLength(result, expectedNumberOfTokens)
176+
const tokens = extractSemanticTokens(result, expectedNumberOfTokens)
177+
178+
expectSemanticTokensToEqual(tokens[4], 1, 10, 8, semanticTokenProvider.tokenTypes.keyword, 0)
179+
expectSemanticTokensToEqual(tokens[5], 0, 9, 9, semanticTokenProvider.tokenTypes.type, 0)
180+
})
181+
182+
test('check semantic tokens for Aggregate with user requirements', async () => {
183+
document = await parse(`
184+
BoundedContext TestContext {
185+
Aggregate TestAggregate {
186+
userRequirements TestStory
187+
}
188+
}
189+
UserStory TestStory
190+
`)
191+
const params = createSemanticTokenParams(document)
192+
193+
const result = await semanticTokenProvider.semanticHighlight(document, params)
194+
195+
const expectedNumberOfTokens = 8
196+
expectSemanticTokensToHaveLength(result, expectedNumberOfTokens)
197+
const tokens = extractSemanticTokens(result, expectedNumberOfTokens)
198+
199+
expectSemanticTokensToEqual(tokens[4], 1, 10, 16, semanticTokenProvider.tokenTypes.keyword, 0)
200+
expectSemanticTokensToEqual(tokens[5], 0, 17, 9, semanticTokenProvider.tokenTypes.type, 0)
135201
})
136202
})
137203

test/semnantictokens/boundedContext/BoundedContextSemanticTokens.test.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,34 @@ describe('BoundedContext semantic token tests', () => {
8282
expectSemanticTokensToEqual(tokens[15], 1, 6, 9, semanticTokenProvider.tokenTypes.keyword, 0)
8383
expectSemanticTokensToEqual(tokens[16], 0, 10, 7, semanticTokenProvider.tokenTypes.enumMember, 0)
8484
})
85+
86+
test('check semantic tokens bounded context with attributes', async () => {
87+
document = await parse(`
88+
BoundedContext TestContext
89+
implements TestDomain
90+
realizes OtherContext
91+
refines NextContext {
92+
}
93+
BoundedContext OtherContext
94+
BoundedContext NextContext
95+
Domain TestDomain
96+
`)
97+
const params = createSemanticTokenParams(document)
98+
const result = await semanticTokenProvider.semanticHighlight(document, params)
99+
100+
const expectedNumberOfTokens = 14
101+
expectSemanticTokensToHaveLength(result, expectedNumberOfTokens)
102+
const tokens = extractSemanticTokens(result, expectedNumberOfTokens)
103+
104+
expectSemanticTokensToEqual(tokens[2], 1, 8, 10, semanticTokenProvider.tokenTypes.keyword, 0)
105+
expectSemanticTokensToEqual(tokens[3], 0, 11, 10, semanticTokenProvider.tokenTypes.type, 0)
106+
107+
expectSemanticTokensToEqual(tokens[4], 1, 8, 8, semanticTokenProvider.tokenTypes.keyword, 0)
108+
expectSemanticTokensToEqual(tokens[5], 0, 9, 12, semanticTokenProvider.tokenTypes.type, 0)
109+
110+
expectSemanticTokensToEqual(tokens[6], 1, 8, 7, semanticTokenProvider.tokenTypes.keyword, 0)
111+
expectSemanticTokensToEqual(tokens[7], 0, 8, 11, semanticTokenProvider.tokenTypes.type, 0)
112+
})
85113
})
86114

87115
function expectEmptyBoundedContext (result: SemanticTokens) {

0 commit comments

Comments
 (0)