@next-k8s/tickets 1.0.27 → 1.0.28
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +8 -0
- package/coverage/clover.xml +67 -45
- package/coverage/coverage-final.json +9 -8
- package/coverage/lcov-report/events/listeners/_queue-group-name.ts.html +88 -0
- package/coverage/lcov-report/events/listeners/index.html +131 -0
- package/coverage/lcov-report/events/listeners/order-created.ts.html +157 -0
- package/coverage/lcov-report/events/publishers/index.html +116 -0
- package/coverage/lcov-report/events/publishers/updated.ts.html +106 -0
- package/coverage/lcov-report/index.html +18 -18
- package/coverage/lcov-report/models/index.html +116 -0
- package/coverage/lcov-report/models/ticket.ts.html +235 -0
- package/coverage/lcov-report/src/app.ts.html +1 -1
- package/coverage/lcov-report/src/events/listeners/_queue-group-name.ts.html +2 -2
- package/coverage/lcov-report/src/events/listeners/index.html +26 -11
- package/coverage/lcov-report/src/events/listeners/order-cancelled.ts.html +157 -0
- package/coverage/lcov-report/src/events/listeners/order-created.ts.html +19 -13
- package/coverage/lcov-report/src/events/publishers/created.ts.html +2 -2
- package/coverage/lcov-report/src/events/publishers/index.html +1 -1
- package/coverage/lcov-report/src/events/publishers/updated.ts.html +5 -5
- package/coverage/lcov-report/src/index.html +1 -1
- package/coverage/lcov-report/src/models/index.html +1 -1
- package/coverage/lcov-report/src/models/ticket.ts.html +12 -15
- package/coverage/lcov-report/src/routes/create.ts.html +7 -7
- package/coverage/lcov-report/src/routes/get.ts.html +1 -1
- package/coverage/lcov-report/src/routes/index.html +7 -7
- package/coverage/lcov-report/src/routes/index.ts.html +1 -1
- package/coverage/lcov-report/src/routes/update.ts.html +9 -6
- package/coverage/lcov-report/src/test/index.html +1 -1
- package/coverage/lcov-report/src/test/utils.ts.html +2 -2
- package/coverage/lcov.info +96 -62
- package/package.json +3 -3
- package/src/events/listeners/__test__/order-cancelled.test.ts +50 -0
- package/src/events/listeners/__test__/order-created.test.ts +7 -1
- package/src/events/listeners/order-cancelled.ts +24 -0
- package/src/events/listeners/order-created.ts +2 -0
- package/src/index.ts +5 -0
- package/src/models/ticket.ts +0 -1
- package/src/routes/__test__/update.test.ts +15 -0
- package/src/routes/update.ts +1 -0
@@ -101,7 +101,7 @@
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
102
102
|
Code coverage generated by
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
104
|
-
at Fri Jul 15 2022
|
104
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
105
105
|
</div>
|
106
106
|
<script src="../prettify.js"></script>
|
107
107
|
<script>
|
@@ -101,7 +101,7 @@
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
102
102
|
Code coverage generated by
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
104
|
-
at Fri Jul 15 2022
|
104
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
105
105
|
</div>
|
106
106
|
<script src="../../prettify.js"></script>
|
107
107
|
<script>
|
@@ -112,9 +112,8 @@
|
|
112
112
|
<a name='L47'></a><a href='#L47'>47</a>
|
113
113
|
<a name='L48'></a><a href='#L48'>48</a>
|
114
114
|
<a name='L49'></a><a href='#L49'>49</a>
|
115
|
-
<a name='L50'></a><a href='#L50'>50</a>
|
116
|
-
<
|
117
|
-
<span class="cline-any cline-yes">5x</span>
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">6x</span>
|
116
|
+
<span class="cline-any cline-yes">6x</span>
|
118
117
|
<span class="cline-any cline-neutral"> </span>
|
119
118
|
<span class="cline-any cline-neutral"> </span>
|
120
119
|
<span class="cline-any cline-neutral"> </span>
|
@@ -124,8 +123,8 @@
|
|
124
123
|
<span class="cline-any cline-neutral"> </span>
|
125
124
|
<span class="cline-any cline-neutral"> </span>
|
126
125
|
<span class="cline-any cline-neutral"> </span>
|
126
|
+
<span class="cline-any cline-yes">6x</span>
|
127
127
|
<span class="cline-any cline-neutral"> </span>
|
128
|
-
<span class="cline-any cline-yes">5x</span>
|
129
128
|
<span class="cline-any cline-neutral"> </span>
|
130
129
|
<span class="cline-any cline-neutral"> </span>
|
131
130
|
<span class="cline-any cline-neutral"> </span>
|
@@ -146,21 +145,20 @@
|
|
146
145
|
<span class="cline-any cline-neutral"> </span>
|
147
146
|
<span class="cline-any cline-neutral"> </span>
|
148
147
|
<span class="cline-any cline-neutral"> </span>
|
148
|
+
<span class="cline-any cline-yes">16x</span>
|
149
|
+
<span class="cline-any cline-yes">16x</span>
|
150
|
+
<span class="cline-any cline-yes">16x</span>
|
149
151
|
<span class="cline-any cline-neutral"> </span>
|
150
|
-
<span class="cline-any cline-yes">15x</span>
|
151
|
-
<span class="cline-any cline-yes">15x</span>
|
152
|
-
<span class="cline-any cline-yes">15x</span>
|
153
152
|
<span class="cline-any cline-neutral"> </span>
|
154
153
|
<span class="cline-any cline-neutral"> </span>
|
155
154
|
<span class="cline-any cline-neutral"> </span>
|
155
|
+
<span class="cline-any cline-yes">6x</span>
|
156
|
+
<span class="cline-any cline-yes">6x</span>
|
156
157
|
<span class="cline-any cline-neutral"> </span>
|
157
|
-
<span class="cline-any cline-yes">
|
158
|
-
<span class="cline-any cline-yes">
|
158
|
+
<span class="cline-any cline-yes">6x</span>
|
159
|
+
<span class="cline-any cline-yes">6x</span>
|
159
160
|
<span class="cline-any cline-neutral"> </span>
|
160
|
-
<span class="cline-any cline-yes">
|
161
|
-
<span class="cline-any cline-yes">5x</span>
|
162
|
-
<span class="cline-any cline-neutral"> </span>
|
163
|
-
<span class="cline-any cline-yes">26x</span>
|
161
|
+
<span class="cline-any cline-yes">38x</span>
|
164
162
|
<span class="cline-any cline-neutral"> </span>
|
165
163
|
<span class="cline-any cline-neutral"> </span>
|
166
164
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import mongoose, { ObjectId } from 'mongoose'
|
@@ -170,7 +168,6 @@ interface TicketAttributes {
|
|
170
168
|
title: string;
|
171
169
|
price: number;
|
172
170
|
owner: string;
|
173
|
-
orderId?: string;
|
174
171
|
createdAt?: Date;
|
175
172
|
updatedAt?: Date;
|
176
173
|
}
|
@@ -220,7 +217,7 @@ export default class Ticket extends TicketModel {
|
|
220
217
|
<div class='footer quiet pad2 space-top1 center small'>
|
221
218
|
Code coverage generated by
|
222
219
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
223
|
-
at Fri Jul 15 2022
|
220
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
224
221
|
</div>
|
225
222
|
<script src="../../prettify.js"></script>
|
226
223
|
<script>
|
@@ -102,12 +102,12 @@
|
|
102
102
|
<span class="cline-any cline-neutral"> </span>
|
103
103
|
<span class="cline-any cline-neutral"> </span>
|
104
104
|
<span class="cline-any cline-neutral"> </span>
|
105
|
-
<span class="cline-any cline-yes">
|
106
|
-
<span class="cline-any cline-yes">
|
107
|
-
<span class="cline-any cline-yes">
|
108
|
-
<span class="cline-any cline-yes">
|
109
|
-
<span class="cline-any cline-yes">
|
110
|
-
<span class="cline-any cline-yes">
|
105
|
+
<span class="cline-any cline-yes">11x</span>
|
106
|
+
<span class="cline-any cline-yes">11x</span>
|
107
|
+
<span class="cline-any cline-yes">11x</span>
|
108
|
+
<span class="cline-any cline-yes">11x</span>
|
109
|
+
<span class="cline-any cline-yes">11x</span>
|
110
|
+
<span class="cline-any cline-yes">11x</span>
|
111
111
|
<span class="cline-any cline-neutral"> </span>
|
112
112
|
<span class="cline-any cline-neutral"> </span>
|
113
113
|
<span class="cline-any cline-yes">3x</span>
|
@@ -142,7 +142,7 @@ export default router
|
|
142
142
|
<div class='footer quiet pad2 space-top1 center small'>
|
143
143
|
Code coverage generated by
|
144
144
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
145
|
-
at Fri Jul 15 2022
|
145
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
146
146
|
</div>
|
147
147
|
<script src="../../prettify.js"></script>
|
148
148
|
<script>
|
@@ -133,7 +133,7 @@ export default router
|
|
133
133
|
<div class='footer quiet pad2 space-top1 center small'>
|
134
134
|
Code coverage generated by
|
135
135
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
136
|
-
at Fri Jul 15 2022
|
136
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
137
137
|
</div>
|
138
138
|
<script src="../../prettify.js"></script>
|
139
139
|
<script>
|
@@ -25,14 +25,14 @@
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
26
26
|
<span class="strong">100% </span>
|
27
27
|
<span class="quiet">Statements</span>
|
28
|
-
<span class='fraction'>
|
28
|
+
<span class='fraction'>64/64</span>
|
29
29
|
</div>
|
30
30
|
|
31
31
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
33
33
|
<span class="strong">100% </span>
|
34
34
|
<span class="quiet">Branches</span>
|
35
|
-
<span class='fraction'>
|
35
|
+
<span class='fraction'>6/6</span>
|
36
36
|
</div>
|
37
37
|
|
38
38
|
|
@@ -46,7 +46,7 @@
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
47
47
|
<span class="strong">100% </span>
|
48
48
|
<span class="quiet">Lines</span>
|
49
|
-
<span class='fraction'>
|
49
|
+
<span class='fraction'>54/54</span>
|
50
50
|
</div>
|
51
51
|
|
52
52
|
|
@@ -129,13 +129,13 @@
|
|
129
129
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
130
130
|
</td>
|
131
131
|
<td data-value="100" class="pct high">100%</td>
|
132
|
-
<td data-value="
|
132
|
+
<td data-value="26" class="abs high">26/26</td>
|
133
133
|
<td data-value="100" class="pct high">100%</td>
|
134
|
-
<td data-value="
|
134
|
+
<td data-value="4" class="abs high">4/4</td>
|
135
135
|
<td data-value="100" class="pct high">100%</td>
|
136
136
|
<td data-value="2" class="abs high">2/2</td>
|
137
137
|
<td data-value="100" class="pct high">100%</td>
|
138
|
-
<td data-value="
|
138
|
+
<td data-value="21" class="abs high">21/21</td>
|
139
139
|
</tr>
|
140
140
|
|
141
141
|
</tbody>
|
@@ -146,7 +146,7 @@
|
|
146
146
|
<div class='footer quiet pad2 space-top1 center small'>
|
147
147
|
Code coverage generated by
|
148
148
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
149
|
-
at Fri Jul 15 2022
|
149
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
150
150
|
</div>
|
151
151
|
<script src="../../prettify.js"></script>
|
152
152
|
<script>
|
@@ -85,7 +85,7 @@ export default [getTicket, createTicket, updateTicket]
|
|
85
85
|
<div class='footer quiet pad2 space-top1 center small'>
|
86
86
|
Code coverage generated by
|
87
87
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
88
|
-
at Fri Jul 15 2022
|
88
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
89
89
|
</div>
|
90
90
|
<script src="../../prettify.js"></script>
|
91
91
|
<script>
|
@@ -25,14 +25,14 @@
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
26
26
|
<span class="strong">100% </span>
|
27
27
|
<span class="quiet">Statements</span>
|
28
|
-
<span class='fraction'>
|
28
|
+
<span class='fraction'>26/26</span>
|
29
29
|
</div>
|
30
30
|
|
31
31
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
33
33
|
<span class="strong">100% </span>
|
34
34
|
<span class="quiet">Branches</span>
|
35
|
-
<span class='fraction'>
|
35
|
+
<span class='fraction'>4/4</span>
|
36
36
|
</div>
|
37
37
|
|
38
38
|
|
@@ -46,7 +46,7 @@
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
47
47
|
<span class="strong">100% </span>
|
48
48
|
<span class="quiet">Lines</span>
|
49
|
-
<span class='fraction'>
|
49
|
+
<span class='fraction'>21/21</span>
|
50
50
|
</div>
|
51
51
|
|
52
52
|
|
@@ -91,7 +91,8 @@
|
|
91
91
|
<a name='L26'></a><a href='#L26'>26</a>
|
92
92
|
<a name='L27'></a><a href='#L27'>27</a>
|
93
93
|
<a name='L28'></a><a href='#L28'>28</a>
|
94
|
-
<a name='L29'></a><a href='#L29'>29</a
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
95
96
|
<span class="cline-any cline-yes">3x</span>
|
96
97
|
<span class="cline-any cline-yes">3x</span>
|
97
98
|
<span class="cline-any cline-yes">3x</span>
|
@@ -106,10 +107,11 @@
|
|
106
107
|
<span class="cline-any cline-neutral"> </span>
|
107
108
|
<span class="cline-any cline-neutral"> </span>
|
108
109
|
<span class="cline-any cline-neutral"> </span>
|
110
|
+
<span class="cline-any cline-yes">5x</span>
|
111
|
+
<span class="cline-any cline-yes">5x</span>
|
109
112
|
<span class="cline-any cline-yes">4x</span>
|
110
113
|
<span class="cline-any cline-yes">4x</span>
|
111
114
|
<span class="cline-any cline-yes">3x</span>
|
112
|
-
<span class="cline-any cline-yes">3x</span>
|
113
115
|
<span class="cline-any cline-yes">2x</span>
|
114
116
|
<span class="cline-any cline-yes">1x</span>
|
115
117
|
<span class="cline-any cline-yes">1x</span>
|
@@ -139,6 +141,7 @@ router.put('/api/tickets/:id', requireAuth, validateInput, validateRequest, asyn
|
|
139
141
|
const ticket = await Ticket.findById(req.params.id)
|
140
142
|
if (!ticket) throw new NotFoundError()
|
141
143
|
if (ticket.owner.toHexString() !== req.currentUser!.id) throw new UnauthorizedError()
|
144
|
+
if (ticket.orderId) throw new BadRequestError('Ticket is reserved')
|
142
145
|
const { title, price } = req.body
|
143
146
|
ticket.set({ title, price })
|
144
147
|
await ticket.save()
|
@@ -154,7 +157,7 @@ export default router
|
|
154
157
|
<div class='footer quiet pad2 space-top1 center small'>
|
155
158
|
Code coverage generated by
|
156
159
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
157
|
-
at Fri Jul 15 2022
|
160
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
158
161
|
</div>
|
159
162
|
<script src="../../prettify.js"></script>
|
160
163
|
<script>
|
@@ -101,7 +101,7 @@
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
102
102
|
Code coverage generated by
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
104
|
-
at Fri Jul 15 2022
|
104
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
105
105
|
</div>
|
106
106
|
<script src="../../prettify.js"></script>
|
107
107
|
<script>
|
@@ -75,7 +75,7 @@
|
|
75
75
|
<a name='L10'></a><a href='#L10'>10</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">3x</span>
|
76
76
|
<span class="cline-any cline-neutral"> </span>
|
77
77
|
<span class="cline-any cline-yes">3x</span>
|
78
|
-
<span class="cline-any cline-yes">
|
78
|
+
<span class="cline-any cline-yes">8x</span>
|
79
79
|
<span class="cline-any cline-neutral"> </span>
|
80
80
|
<span class="cline-any cline-neutral"> </span>
|
81
81
|
<span class="cline-any cline-neutral"> </span>
|
@@ -97,7 +97,7 @@ export const createTicket = (app: Express.Application, cookie?: string, title =
|
|
97
97
|
<div class='footer quiet pad2 space-top1 center small'>
|
98
98
|
Code coverage generated by
|
99
99
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
100
|
-
at Fri Jul 15 2022
|
100
|
+
at Fri Jul 15 2022 21:51:54 GMT-0500 (Central Daylight Time)
|
101
101
|
</div>
|
102
102
|
<script src="../../prettify.js"></script>
|
103
103
|
<script>
|
package/coverage/lcov.info
CHANGED
@@ -31,34 +31,66 @@ TN:
|
|
31
31
|
SF:src/events/listeners/_queue-group-name.ts
|
32
32
|
FNF:0
|
33
33
|
FNH:0
|
34
|
-
DA:1,
|
34
|
+
DA:1,2
|
35
35
|
LF:1
|
36
36
|
LH:1
|
37
37
|
BRF:0
|
38
38
|
BRH:0
|
39
39
|
end_of_record
|
40
40
|
TN:
|
41
|
+
SF:src/events/listeners/order-cancelled.ts
|
42
|
+
FN:8,(anonymous_8)
|
43
|
+
FN:12,(anonymous_9)
|
44
|
+
FNF:2
|
45
|
+
FNH:2
|
46
|
+
FNDA:3,(anonymous_8)
|
47
|
+
FNDA:3,(anonymous_9)
|
48
|
+
DA:1,1
|
49
|
+
DA:3,1
|
50
|
+
DA:4,1
|
51
|
+
DA:6,1
|
52
|
+
DA:8,1
|
53
|
+
DA:9,3
|
54
|
+
DA:10,3
|
55
|
+
DA:13,3
|
56
|
+
DA:14,3
|
57
|
+
DA:15,3
|
58
|
+
DA:16,3
|
59
|
+
DA:18,3
|
60
|
+
DA:19,3
|
61
|
+
DA:20,3
|
62
|
+
DA:24,1
|
63
|
+
LF:15
|
64
|
+
LH:15
|
65
|
+
BRDA:14,0,0,0
|
66
|
+
BRF:1
|
67
|
+
BRH:0
|
68
|
+
end_of_record
|
69
|
+
TN:
|
41
70
|
SF:src/events/listeners/order-created.ts
|
42
71
|
FN:8,(anonymous_8)
|
43
72
|
FN:12,(anonymous_9)
|
44
73
|
FNF:2
|
45
74
|
FNH:2
|
46
|
-
FNDA:
|
47
|
-
FNDA:
|
75
|
+
FNDA:3,(anonymous_8)
|
76
|
+
FNDA:3,(anonymous_9)
|
48
77
|
DA:1,1
|
49
78
|
DA:3,1
|
79
|
+
DA:4,1
|
50
80
|
DA:6,1
|
51
81
|
DA:8,1
|
52
|
-
DA:9,
|
53
|
-
DA:10,
|
54
|
-
DA:13,
|
55
|
-
DA:14,
|
56
|
-
DA:15,
|
57
|
-
DA:16,
|
58
|
-
DA:18,
|
59
|
-
DA:
|
60
|
-
|
61
|
-
|
82
|
+
DA:9,3
|
83
|
+
DA:10,3
|
84
|
+
DA:13,3
|
85
|
+
DA:14,3
|
86
|
+
DA:15,3
|
87
|
+
DA:16,3
|
88
|
+
DA:18,3
|
89
|
+
DA:19,3
|
90
|
+
DA:20,3
|
91
|
+
DA:24,1
|
92
|
+
LF:15
|
93
|
+
LH:15
|
62
94
|
BRDA:14,0,0,0
|
63
95
|
BRF:1
|
64
96
|
BRH:0
|
@@ -68,10 +100,10 @@ SF:src/events/publishers/created.ts
|
|
68
100
|
FN:3,(anonymous_0)
|
69
101
|
FNF:1
|
70
102
|
FNH:1
|
71
|
-
FNDA:
|
103
|
+
FNDA:11,(anonymous_0)
|
72
104
|
DA:1,3
|
73
105
|
DA:3,3
|
74
|
-
DA:4,
|
106
|
+
DA:4,11
|
75
107
|
DA:7,3
|
76
108
|
LF:4
|
77
109
|
LH:4
|
@@ -83,11 +115,11 @@ SF:src/events/publishers/updated.ts
|
|
83
115
|
FN:3,(anonymous_0)
|
84
116
|
FNF:1
|
85
117
|
FNH:1
|
86
|
-
FNDA:
|
87
|
-
DA:1,
|
88
|
-
DA:3,
|
89
|
-
DA:4,
|
90
|
-
DA:7,
|
118
|
+
FNDA:7,(anonymous_0)
|
119
|
+
DA:1,5
|
120
|
+
DA:3,5
|
121
|
+
DA:4,7
|
122
|
+
DA:7,5
|
91
123
|
LF:4
|
92
124
|
LH:4
|
93
125
|
BRF:0
|
@@ -95,23 +127,23 @@ BRH:0
|
|
95
127
|
end_of_record
|
96
128
|
TN:
|
97
129
|
SF:src/models/ticket.ts
|
98
|
-
FN:
|
99
|
-
FN:
|
130
|
+
FN:33,(anonymous_1)
|
131
|
+
FN:46,(anonymous_2)
|
100
132
|
FNF:2
|
101
133
|
FNH:2
|
102
|
-
FNDA:
|
103
|
-
FNDA:
|
104
|
-
DA:1,
|
105
|
-
DA:2,
|
106
|
-
DA:
|
107
|
-
DA:
|
108
|
-
DA:
|
109
|
-
DA:
|
110
|
-
DA:
|
111
|
-
DA:
|
112
|
-
DA:
|
113
|
-
DA:
|
114
|
-
DA:
|
134
|
+
FNDA:16,(anonymous_1)
|
135
|
+
FNDA:38,(anonymous_2)
|
136
|
+
DA:1,6
|
137
|
+
DA:2,6
|
138
|
+
DA:12,6
|
139
|
+
DA:34,16
|
140
|
+
DA:35,16
|
141
|
+
DA:36,16
|
142
|
+
DA:41,6
|
143
|
+
DA:42,6
|
144
|
+
DA:44,6
|
145
|
+
DA:45,6
|
146
|
+
DA:47,38
|
115
147
|
LF:11
|
116
148
|
LH:11
|
117
149
|
BRF:0
|
@@ -123,8 +155,8 @@ FN:16,(anonymous_8)
|
|
123
155
|
FN:16,(anonymous_9)
|
124
156
|
FNF:2
|
125
157
|
FNH:2
|
126
|
-
FNDA:
|
127
|
-
FNDA:
|
158
|
+
FNDA:11,(anonymous_8)
|
159
|
+
FNDA:11,(anonymous_9)
|
128
160
|
DA:1,3
|
129
161
|
DA:2,3
|
130
162
|
DA:3,3
|
@@ -133,12 +165,12 @@ DA:6,3
|
|
133
165
|
DA:7,3
|
134
166
|
DA:9,3
|
135
167
|
DA:11,3
|
136
|
-
DA:16,
|
137
|
-
DA:17,
|
138
|
-
DA:18,
|
139
|
-
DA:19,
|
140
|
-
DA:20,
|
141
|
-
DA:21,
|
168
|
+
DA:16,11
|
169
|
+
DA:17,11
|
170
|
+
DA:18,11
|
171
|
+
DA:19,11
|
172
|
+
DA:20,11
|
173
|
+
DA:21,11
|
142
174
|
DA:24,3
|
143
175
|
LF:15
|
144
176
|
LH:15
|
@@ -197,8 +229,8 @@ FN:16,(anonymous_8)
|
|
197
229
|
FN:16,(anonymous_9)
|
198
230
|
FNF:2
|
199
231
|
FNH:2
|
200
|
-
FNDA:
|
201
|
-
FNDA:
|
232
|
+
FNDA:5,(anonymous_8)
|
233
|
+
FNDA:5,(anonymous_9)
|
202
234
|
DA:1,3
|
203
235
|
DA:2,3
|
204
236
|
DA:3,3
|
@@ -208,40 +240,42 @@ DA:6,3
|
|
208
240
|
DA:7,3
|
209
241
|
DA:9,3
|
210
242
|
DA:11,3
|
211
|
-
DA:16,
|
212
|
-
DA:17,
|
213
|
-
DA:18,
|
214
|
-
DA:19,
|
215
|
-
DA:20,
|
216
|
-
DA:21,
|
243
|
+
DA:16,5
|
244
|
+
DA:17,5
|
245
|
+
DA:18,4
|
246
|
+
DA:19,4
|
247
|
+
DA:20,3
|
248
|
+
DA:21,2
|
217
249
|
DA:22,1
|
218
250
|
DA:23,1
|
219
251
|
DA:24,1
|
220
252
|
DA:25,1
|
221
|
-
DA:
|
222
|
-
|
223
|
-
|
253
|
+
DA:26,1
|
254
|
+
DA:29,3
|
255
|
+
LF:21
|
256
|
+
LH:21
|
224
257
|
BRDA:17,0,0,1
|
225
258
|
BRDA:19,1,0,1
|
226
259
|
BRDA:20,2,0,1
|
227
|
-
|
228
|
-
|
260
|
+
BRDA:21,3,0,1
|
261
|
+
BRF:4
|
262
|
+
BRH:4
|
229
263
|
end_of_record
|
230
264
|
TN:
|
231
265
|
SF:src/test/utils.ts
|
232
266
|
FN:3,(anonymous_1)
|
233
267
|
FNF:1
|
234
268
|
FNH:1
|
235
|
-
FNDA:
|
269
|
+
FNDA:8,(anonymous_1)
|
236
270
|
DA:1,3
|
237
271
|
DA:3,3
|
238
|
-
DA:4,
|
272
|
+
DA:4,8
|
239
273
|
LF:3
|
240
274
|
LH:3
|
241
|
-
BRDA:3,0,0,
|
242
|
-
BRDA:3,1,0,
|
243
|
-
BRDA:3,2,0,
|
244
|
-
BRDA:6,3,0,
|
275
|
+
BRDA:3,0,0,7
|
276
|
+
BRDA:3,1,0,7
|
277
|
+
BRDA:3,2,0,8
|
278
|
+
BRDA:6,3,0,8
|
245
279
|
BRDA:6,3,1,0
|
246
280
|
BRF:5
|
247
281
|
BRH:4
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@next-k8s/tickets",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.28",
|
4
4
|
"main": "index.js",
|
5
5
|
"license": "MIT",
|
6
6
|
"scripts": {
|
@@ -34,7 +34,7 @@
|
|
34
34
|
]
|
35
35
|
},
|
36
36
|
"dependencies": {
|
37
|
-
"@next-k8s/common": "^0.1.
|
37
|
+
"@next-k8s/common": "^0.1.36",
|
38
38
|
"@types/cookie-session": "^2.0.44",
|
39
39
|
"@types/express": "^4.17.13",
|
40
40
|
"@types/jsonwebtoken": "^8.5.8",
|
@@ -62,5 +62,5 @@
|
|
62
62
|
"supertest": "^6.2.3",
|
63
63
|
"ts-jest": "^28.0.4"
|
64
64
|
},
|
65
|
-
"gitHead": "
|
65
|
+
"gitHead": "b2b69ab41a506a1496d8fa6aa5c2e150504bdde2"
|
66
66
|
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import mongoose from 'mongoose'
|
2
|
+
import { Message } from 'node-nats-streaming'
|
3
|
+
import { OrderCancelledEvent, OrderStatus } from '@next-k8s/common'
|
4
|
+
|
5
|
+
import Ticket from '../../../models/ticket'
|
6
|
+
import natsClient from '../../../nats-client'
|
7
|
+
import OrderCancelledListener from '../order-cancelled'
|
8
|
+
|
9
|
+
const setup = async () => {
|
10
|
+
const owner = new mongoose.Types.ObjectId().toHexString()
|
11
|
+
const orderId = new mongoose.Types.ObjectId().toHexString()
|
12
|
+
const listener = new OrderCancelledListener(natsClient.client)
|
13
|
+
const ticket = new Ticket({ title: 'Test Ticket', price: 21000, owner })
|
14
|
+
|
15
|
+
ticket.set({ orderId })
|
16
|
+
await ticket.save()
|
17
|
+
|
18
|
+
const data: OrderCancelledEvent['data'] = {
|
19
|
+
id: new mongoose.Types.ObjectId().toHexString(),
|
20
|
+
version: 0,
|
21
|
+
ticket: {
|
22
|
+
id: ticket.id
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
// @ts-ignore
|
27
|
+
const message: Message = { ack: jest.fn() }
|
28
|
+
return { data, listener, message, orderId, ticket }
|
29
|
+
}
|
30
|
+
|
31
|
+
describe('[Order Cancelled] Listener', () => {
|
32
|
+
it('should clear the orderId of the ticket', async () => {
|
33
|
+
const { data, listener, message, ticket } = await setup()
|
34
|
+
await listener.onMessage(data, message)
|
35
|
+
const updatedTicket = await Ticket.findById(ticket.id)
|
36
|
+
expect(updatedTicket.orderId).not.toBeDefined()
|
37
|
+
})
|
38
|
+
|
39
|
+
it('should ack the message', async () =>{
|
40
|
+
const { data, listener, message } = await setup()
|
41
|
+
await listener.onMessage(data, message)
|
42
|
+
expect(message.ack).toHaveBeenCalled()
|
43
|
+
})
|
44
|
+
|
45
|
+
it('should publish an order:updated event', async () => {
|
46
|
+
const { data, listener, message } = await setup()
|
47
|
+
await listener.onMessage(data, message)
|
48
|
+
expect(natsClient.client.publish).toHaveBeenCalled()
|
49
|
+
})
|
50
|
+
})
|
@@ -29,7 +29,7 @@ const setup = async () => {
|
|
29
29
|
}
|
30
30
|
|
31
31
|
describe('[Order Created] Listener', () => {
|
32
|
-
it('should set the ticket
|
32
|
+
it('should set the ticket orderId', async () => {
|
33
33
|
const { data, listener, message, ticket } = await setup()
|
34
34
|
await listener.onMessage(data, message)
|
35
35
|
const updatedTicket = await Ticket.findById(ticket.id)
|
@@ -41,4 +41,10 @@ describe('[Order Created] Listener', () => {
|
|
41
41
|
await listener.onMessage(data, message)
|
42
42
|
expect(message.ack).toHaveBeenCalled()
|
43
43
|
})
|
44
|
+
|
45
|
+
it('should publish a ticket:updated event', async () => {
|
46
|
+
const { data, listener, message } = await setup()
|
47
|
+
await listener.onMessage(data, message)
|
48
|
+
expect(natsClient.client.publish).toHaveBeenCalled()
|
49
|
+
})
|
44
50
|
})
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Listener, NotFoundError, OrderCancelledEvent, Subjects } from '@next-k8s/common'
|
2
|
+
import { Message } from 'node-nats-streaming'
|
3
|
+
import Ticket from '../../models/ticket'
|
4
|
+
import TicketUpdatedPublisher from '../publishers/updated'
|
5
|
+
|
6
|
+
import queueGroupName from './_queue-group-name'
|
7
|
+
|
8
|
+
export class OrderCancelledListener extends Listener<OrderCancelledEvent> {
|
9
|
+
readonly subject = Subjects.OrderCancelled
|
10
|
+
queueGroupName = queueGroupName
|
11
|
+
|
12
|
+
async onMessage (data: OrderCancelledEvent['data'], msg: Message) {
|
13
|
+
const ticket = await Ticket.findById(data.ticket.id)
|
14
|
+
if (!ticket) throw new NotFoundError('Ticket not found')
|
15
|
+
ticket.set({ orderId: undefined })
|
16
|
+
await ticket.save()
|
17
|
+
|
18
|
+
const { id, version, price, title, owner, orderId } = ticket
|
19
|
+
await new TicketUpdatedPublisher(this.client).publish({ id, version, price, title, owner, orderId })
|
20
|
+
msg.ack()
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
export default OrderCancelledListener
|
@@ -15,6 +15,8 @@ export class OrderCreatedListener extends Listener<OrderCreatedEvent> {
|
|
15
15
|
ticket.set({ orderId: data.id })
|
16
16
|
await ticket.save()
|
17
17
|
|
18
|
+
const { id, version, price, title, owner, orderId } = ticket
|
19
|
+
await new TicketUpdatedPublisher(this.client).publish({ id, version, price, title, owner, orderId })
|
18
20
|
msg.ack()
|
19
21
|
}
|
20
22
|
}
|