@next-k8s/tickets 1.0.27 → 1.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
}
|