@constructive-io/knative-job-worker 0.7.15 → 0.8.1
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/README.md +58 -0
- package/esm/index.js +208 -0
- package/esm/req.js +55 -0
- package/{src/run.ts → esm/run.js} +4 -11
- package/{dist/index.d.ts → index.d.ts} +5 -1
- package/{dist/index.js → index.js} +55 -5
- package/package.json +22 -13
- package/CHANGELOG.md +0 -228
- package/__tests__/req.test.ts +0 -130
- package/__tests__/worker.integration.test.ts +0 -117
- package/jest.config.js +0 -18
- package/src/index.ts +0 -210
- package/src/req.ts +0 -82
- package/tsconfig.esm.json +0 -9
- package/tsconfig.json +0 -9
- /package/{dist/req.d.ts → req.d.ts} +0 -0
- /package/{dist/req.js → req.js} +0 -0
- /package/{dist/run.d.ts → run.d.ts} +0 -0
- /package/{dist/run.js → run.js} +0 -0
package/CHANGELOG.md
DELETED
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
|
|
3
|
-
All notable changes to this project will be documented in this file.
|
|
4
|
-
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
|
-
|
|
6
|
-
## [0.7.15](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.14...@constructive-io/knative-job-worker@0.7.15) (2026-01-14)
|
|
7
|
-
|
|
8
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
9
|
-
|
|
10
|
-
## [0.7.14](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.13...@constructive-io/knative-job-worker@0.7.14) (2026-01-14)
|
|
11
|
-
|
|
12
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
13
|
-
|
|
14
|
-
## [0.7.13](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.12...@constructive-io/knative-job-worker@0.7.13) (2026-01-10)
|
|
15
|
-
|
|
16
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
17
|
-
|
|
18
|
-
## [0.7.12](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.11...@constructive-io/knative-job-worker@0.7.12) (2026-01-09)
|
|
19
|
-
|
|
20
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
21
|
-
|
|
22
|
-
## [0.7.11](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.10...@constructive-io/knative-job-worker@0.7.11) (2026-01-08)
|
|
23
|
-
|
|
24
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
25
|
-
|
|
26
|
-
## [0.7.10](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.9...@constructive-io/knative-job-worker@0.7.10) (2026-01-08)
|
|
27
|
-
|
|
28
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
29
|
-
|
|
30
|
-
## [0.7.9](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.8...@constructive-io/knative-job-worker@0.7.9) (2026-01-08)
|
|
31
|
-
|
|
32
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
33
|
-
|
|
34
|
-
## [0.7.8](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.7...@constructive-io/knative-job-worker@0.7.8) (2026-01-08)
|
|
35
|
-
|
|
36
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
37
|
-
|
|
38
|
-
## [0.7.7](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.6...@constructive-io/knative-job-worker@0.7.7) (2026-01-08)
|
|
39
|
-
|
|
40
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
41
|
-
|
|
42
|
-
## [0.7.6](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.5...@constructive-io/knative-job-worker@0.7.6) (2026-01-08)
|
|
43
|
-
|
|
44
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
45
|
-
|
|
46
|
-
## [0.7.5](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.4...@constructive-io/knative-job-worker@0.7.5) (2026-01-08)
|
|
47
|
-
|
|
48
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
49
|
-
|
|
50
|
-
## [0.7.4](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.3...@constructive-io/knative-job-worker@0.7.4) (2026-01-08)
|
|
51
|
-
|
|
52
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
53
|
-
|
|
54
|
-
## [0.7.3](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.2...@constructive-io/knative-job-worker@0.7.3) (2026-01-07)
|
|
55
|
-
|
|
56
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
57
|
-
|
|
58
|
-
## [0.7.2](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.1...@constructive-io/knative-job-worker@0.7.2) (2026-01-07)
|
|
59
|
-
|
|
60
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
61
|
-
|
|
62
|
-
## [0.7.1](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.7.0...@constructive-io/knative-job-worker@0.7.1) (2026-01-06)
|
|
63
|
-
|
|
64
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
65
|
-
|
|
66
|
-
# [0.7.0](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.6.0...@constructive-io/knative-job-worker@0.7.0) (2026-01-05)
|
|
67
|
-
|
|
68
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
69
|
-
|
|
70
|
-
# [0.6.0](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.46...@constructive-io/knative-job-worker@0.6.0) (2026-01-05)
|
|
71
|
-
|
|
72
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
73
|
-
|
|
74
|
-
## [0.5.46](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.45...@constructive-io/knative-job-worker@0.5.46) (2026-01-05)
|
|
75
|
-
|
|
76
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
77
|
-
|
|
78
|
-
## [0.5.45](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.44...@constructive-io/knative-job-worker@0.5.45) (2026-01-03)
|
|
79
|
-
|
|
80
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
81
|
-
|
|
82
|
-
## [0.5.44](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.43...@constructive-io/knative-job-worker@0.5.44) (2026-01-02)
|
|
83
|
-
|
|
84
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
85
|
-
|
|
86
|
-
## [0.5.43](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.42...@constructive-io/knative-job-worker@0.5.43) (2026-01-02)
|
|
87
|
-
|
|
88
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
89
|
-
|
|
90
|
-
## [0.5.42](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.41...@constructive-io/knative-job-worker@0.5.42) (2025-12-31)
|
|
91
|
-
|
|
92
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
93
|
-
|
|
94
|
-
## [0.5.41](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.40...@constructive-io/knative-job-worker@0.5.41) (2025-12-31)
|
|
95
|
-
|
|
96
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
97
|
-
|
|
98
|
-
## [0.5.40](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.39...@constructive-io/knative-job-worker@0.5.40) (2025-12-31)
|
|
99
|
-
|
|
100
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
101
|
-
|
|
102
|
-
## [0.5.39](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.38...@constructive-io/knative-job-worker@0.5.39) (2025-12-31)
|
|
103
|
-
|
|
104
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
105
|
-
|
|
106
|
-
## [0.5.38](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.37...@constructive-io/knative-job-worker@0.5.38) (2025-12-31)
|
|
107
|
-
|
|
108
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
109
|
-
|
|
110
|
-
## [0.5.37](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.36...@constructive-io/knative-job-worker@0.5.37) (2025-12-31)
|
|
111
|
-
|
|
112
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
113
|
-
|
|
114
|
-
## [0.5.36](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.35...@constructive-io/knative-job-worker@0.5.36) (2025-12-31)
|
|
115
|
-
|
|
116
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
117
|
-
|
|
118
|
-
## [0.5.35](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.34...@constructive-io/knative-job-worker@0.5.35) (2025-12-27)
|
|
119
|
-
|
|
120
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
121
|
-
|
|
122
|
-
## [0.5.34](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.33...@constructive-io/knative-job-worker@0.5.34) (2025-12-27)
|
|
123
|
-
|
|
124
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
125
|
-
|
|
126
|
-
## [0.5.33](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.32...@constructive-io/knative-job-worker@0.5.33) (2025-12-27)
|
|
127
|
-
|
|
128
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
129
|
-
|
|
130
|
-
## [0.5.32](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.31...@constructive-io/knative-job-worker@0.5.32) (2025-12-27)
|
|
131
|
-
|
|
132
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
133
|
-
|
|
134
|
-
## [0.5.31](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.30...@constructive-io/knative-job-worker@0.5.31) (2025-12-27)
|
|
135
|
-
|
|
136
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
137
|
-
|
|
138
|
-
## [0.5.30](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.29...@constructive-io/knative-job-worker@0.5.30) (2025-12-27)
|
|
139
|
-
|
|
140
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
141
|
-
|
|
142
|
-
## [0.5.29](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.28...@constructive-io/knative-job-worker@0.5.29) (2025-12-26)
|
|
143
|
-
|
|
144
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
145
|
-
|
|
146
|
-
## [0.5.28](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.27...@constructive-io/knative-job-worker@0.5.28) (2025-12-26)
|
|
147
|
-
|
|
148
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
149
|
-
|
|
150
|
-
## [0.5.27](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.26...@constructive-io/knative-job-worker@0.5.27) (2025-12-26)
|
|
151
|
-
|
|
152
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
153
|
-
|
|
154
|
-
## [0.5.26](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.25...@constructive-io/knative-job-worker@0.5.26) (2025-12-26)
|
|
155
|
-
|
|
156
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
157
|
-
|
|
158
|
-
## [0.5.25](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.24...@constructive-io/knative-job-worker@0.5.25) (2025-12-26)
|
|
159
|
-
|
|
160
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
161
|
-
|
|
162
|
-
## [0.5.24](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.23...@constructive-io/knative-job-worker@0.5.24) (2025-12-25)
|
|
163
|
-
|
|
164
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
165
|
-
|
|
166
|
-
## [0.5.23](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.22...@constructive-io/knative-job-worker@0.5.23) (2025-12-25)
|
|
167
|
-
|
|
168
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
169
|
-
|
|
170
|
-
## [0.5.22](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.21...@constructive-io/knative-job-worker@0.5.22) (2025-12-25)
|
|
171
|
-
|
|
172
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
173
|
-
|
|
174
|
-
## [0.5.21](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.20...@constructive-io/knative-job-worker@0.5.21) (2025-12-25)
|
|
175
|
-
|
|
176
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
177
|
-
|
|
178
|
-
## [0.5.20](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.19...@constructive-io/knative-job-worker@0.5.20) (2025-12-24)
|
|
179
|
-
|
|
180
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
181
|
-
|
|
182
|
-
## [0.5.19](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.18...@constructive-io/knative-job-worker@0.5.19) (2025-12-24)
|
|
183
|
-
|
|
184
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
185
|
-
|
|
186
|
-
## [0.5.18](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.17...@constructive-io/knative-job-worker@0.5.18) (2025-12-24)
|
|
187
|
-
|
|
188
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
189
|
-
|
|
190
|
-
## [0.5.17](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.16...@constructive-io/knative-job-worker@0.5.17) (2025-12-24)
|
|
191
|
-
|
|
192
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
193
|
-
|
|
194
|
-
## [0.5.16](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.15...@constructive-io/knative-job-worker@0.5.16) (2025-12-23)
|
|
195
|
-
|
|
196
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
197
|
-
|
|
198
|
-
## [0.5.15](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.14...@constructive-io/knative-job-worker@0.5.15) (2025-12-22)
|
|
199
|
-
|
|
200
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
201
|
-
|
|
202
|
-
## [0.5.14](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.13...@constructive-io/knative-job-worker@0.5.14) (2025-12-22)
|
|
203
|
-
|
|
204
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
205
|
-
|
|
206
|
-
## [0.5.13](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.12...@constructive-io/knative-job-worker@0.5.13) (2025-12-21)
|
|
207
|
-
|
|
208
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
209
|
-
|
|
210
|
-
## [0.5.12](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.11...@constructive-io/knative-job-worker@0.5.12) (2025-12-21)
|
|
211
|
-
|
|
212
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
213
|
-
|
|
214
|
-
## [0.5.11](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.10...@constructive-io/knative-job-worker@0.5.11) (2025-12-21)
|
|
215
|
-
|
|
216
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
217
|
-
|
|
218
|
-
## [0.5.10](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.9...@constructive-io/knative-job-worker@0.5.10) (2025-12-19)
|
|
219
|
-
|
|
220
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
221
|
-
|
|
222
|
-
## 0.5.9 (2025-12-18)
|
|
223
|
-
|
|
224
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
|
225
|
-
|
|
226
|
-
## [0.5.8](https://github.com/constructive-io/jobs/compare/@constructive-io/knative-job-worker@0.5.7...@constructive-io/knative-job-worker@0.5.8) (2025-12-17)
|
|
227
|
-
|
|
228
|
-
**Note:** Version bump only for package @constructive-io/knative-job-worker
|
package/__tests__/req.test.ts
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
const postMock = jest.fn();
|
|
2
|
-
|
|
3
|
-
jest.mock('request', () => ({
|
|
4
|
-
__esModule: true,
|
|
5
|
-
default: { post: postMock },
|
|
6
|
-
post: postMock
|
|
7
|
-
}));
|
|
8
|
-
|
|
9
|
-
describe('knative request wrapper', () => {
|
|
10
|
-
beforeEach(() => {
|
|
11
|
-
jest.resetModules();
|
|
12
|
-
postMock.mockReset();
|
|
13
|
-
|
|
14
|
-
process.env.PGUSER = 'postgres';
|
|
15
|
-
process.env.PGHOST = 'localhost';
|
|
16
|
-
process.env.PGPASSWORD = 'password';
|
|
17
|
-
process.env.PGPORT = '5432';
|
|
18
|
-
process.env.PGDATABASE = 'jobs';
|
|
19
|
-
process.env.JOBS_SCHEMA = 'app_jobs';
|
|
20
|
-
process.env.INTERNAL_JOBS_CALLBACK_URL =
|
|
21
|
-
'http://callback.internal/jobs-complete';
|
|
22
|
-
process.env.NODE_ENV = 'test';
|
|
23
|
-
delete process.env.INTERNAL_GATEWAY_URL;
|
|
24
|
-
delete process.env.KNATIVE_SERVICE_URL;
|
|
25
|
-
delete process.env.INTERNAL_GATEWAY_DEVELOPMENT_MAP;
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('uses KNATIVE_SERVICE_URL as base and preserves headers and body', async () => {
|
|
29
|
-
process.env.KNATIVE_SERVICE_URL = 'http://knative.internal';
|
|
30
|
-
|
|
31
|
-
postMock.mockImplementation(
|
|
32
|
-
(options: any, callback: (err: any) => void) => callback(null)
|
|
33
|
-
);
|
|
34
|
-
|
|
35
|
-
const { request } = await import('../src/req');
|
|
36
|
-
|
|
37
|
-
await request('example-fn', {
|
|
38
|
-
body: { value: 1 },
|
|
39
|
-
databaseId: 'db-123',
|
|
40
|
-
workerId: 'worker-1',
|
|
41
|
-
jobId: 42
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
expect(postMock).toHaveBeenCalledTimes(1);
|
|
45
|
-
const [options] = postMock.mock.calls[0];
|
|
46
|
-
|
|
47
|
-
expect(options.url).toBe('http://knative.internal/example-fn');
|
|
48
|
-
expect(options.headers['Content-Type']).toBe('application/json');
|
|
49
|
-
expect(options.headers['X-Worker-Id']).toBe('worker-1');
|
|
50
|
-
expect(options.headers['X-Job-Id']).toBe(42);
|
|
51
|
-
expect(options.headers['X-Database-Id']).toBe('db-123');
|
|
52
|
-
expect(options.headers['X-Callback-Url']).toBe(
|
|
53
|
-
'http://callback.internal/jobs-complete'
|
|
54
|
-
);
|
|
55
|
-
expect(options.body).toEqual({ value: 1 });
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
it('falls back to INTERNAL_GATEWAY_URL when KNATIVE_SERVICE_URL is not set', async () => {
|
|
59
|
-
process.env.INTERNAL_GATEWAY_URL =
|
|
60
|
-
'http://gateway.internal/async-function';
|
|
61
|
-
|
|
62
|
-
postMock.mockImplementation(
|
|
63
|
-
(options: any, callback: (err: any) => void) => callback(null)
|
|
64
|
-
);
|
|
65
|
-
|
|
66
|
-
const { request } = await import('../src/req');
|
|
67
|
-
|
|
68
|
-
await request('example-fn', {
|
|
69
|
-
body: { value: 2 },
|
|
70
|
-
databaseId: 'db-456',
|
|
71
|
-
workerId: 'worker-2',
|
|
72
|
-
jobId: 43
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
const [options] = postMock.mock.calls[0];
|
|
76
|
-
expect(options.url).toBe(
|
|
77
|
-
'http://gateway.internal/async-function/example-fn'
|
|
78
|
-
);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it('uses development map override when provided', async () => {
|
|
82
|
-
process.env.KNATIVE_SERVICE_URL = 'http://knative.internal';
|
|
83
|
-
process.env.INTERNAL_GATEWAY_DEVELOPMENT_MAP = JSON.stringify({
|
|
84
|
-
'example-fn': 'http://localhost:3000/dev-fn'
|
|
85
|
-
});
|
|
86
|
-
process.env.NODE_ENV = 'development';
|
|
87
|
-
|
|
88
|
-
postMock.mockImplementation(
|
|
89
|
-
(options: any, callback: (err: any) => void) => callback(null)
|
|
90
|
-
);
|
|
91
|
-
|
|
92
|
-
const { request } = await import('../src/req');
|
|
93
|
-
|
|
94
|
-
await request('example-fn', {
|
|
95
|
-
body: {},
|
|
96
|
-
databaseId: 'db-789',
|
|
97
|
-
workerId: 'worker-3',
|
|
98
|
-
jobId: 44
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
const [options] = postMock.mock.calls[0];
|
|
102
|
-
expect(options.url).toBe('http://localhost:3000/dev-fn');
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
it('rejects when HTTP request errors', async () => {
|
|
106
|
-
process.env.KNATIVE_SERVICE_URL = 'http://knative.internal';
|
|
107
|
-
|
|
108
|
-
postMock.mockImplementation(
|
|
109
|
-
(options: any, callback: (err: any) => void) =>
|
|
110
|
-
callback(new Error('network failure'))
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
const { request } = await import('../src/req');
|
|
114
|
-
|
|
115
|
-
await expect(
|
|
116
|
-
request('example-fn', {
|
|
117
|
-
body: {},
|
|
118
|
-
databaseId: 'db-000',
|
|
119
|
-
workerId: 'worker-4',
|
|
120
|
-
jobId: 45
|
|
121
|
-
})
|
|
122
|
-
).rejects.toThrow('network failure');
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
it('throws on startup when no base URL env vars are set', async () => {
|
|
126
|
-
await expect(import('../src/env')).rejects.toThrow(
|
|
127
|
-
/KNATIVE_SERVICE_URL \(or INTERNAL_GATEWAY_URL as fallback\) is required/
|
|
128
|
-
);
|
|
129
|
-
});
|
|
130
|
-
});
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
process.env.KNATIVE_SERVICE_URL =
|
|
2
|
-
process.env.KNATIVE_SERVICE_URL || 'knative.internal';
|
|
3
|
-
process.env.INTERNAL_JOBS_CALLBACK_URL =
|
|
4
|
-
process.env.INTERNAL_JOBS_CALLBACK_URL ||
|
|
5
|
-
'http://callback.internal/jobs-complete';
|
|
6
|
-
|
|
7
|
-
const postMock = jest.fn();
|
|
8
|
-
|
|
9
|
-
jest.mock('request', () => ({
|
|
10
|
-
__esModule: true,
|
|
11
|
-
default: { post: postMock },
|
|
12
|
-
post: postMock
|
|
13
|
-
}));
|
|
14
|
-
|
|
15
|
-
jest.mock('@constructive-io/job-pg', () => ({
|
|
16
|
-
__esModule: true,
|
|
17
|
-
default: {
|
|
18
|
-
getPool: jest.fn(),
|
|
19
|
-
onClose: jest.fn(),
|
|
20
|
-
close: jest.fn()
|
|
21
|
-
}
|
|
22
|
-
}));
|
|
23
|
-
|
|
24
|
-
import path from 'path';
|
|
25
|
-
import { getConnections, seed } from 'pgsql-test';
|
|
26
|
-
import type { PgTestClient } from 'pgsql-test/test-client';
|
|
27
|
-
import * as jobUtils from '@constructive-io/job-utils';
|
|
28
|
-
import Worker from '../src';
|
|
29
|
-
|
|
30
|
-
let db: PgTestClient;
|
|
31
|
-
let teardown: () => Promise<void>;
|
|
32
|
-
|
|
33
|
-
beforeAll(async () => {
|
|
34
|
-
const modulePath = path.resolve(
|
|
35
|
-
__dirname,
|
|
36
|
-
'../../../extensions/@pgpm/database-jobs'
|
|
37
|
-
);
|
|
38
|
-
({ db, teardown } = await getConnections({}, [seed.loadPgpm(modulePath)]));
|
|
39
|
-
db.setContext({ role: 'administrator' });
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
afterAll(async () => {
|
|
43
|
-
await teardown();
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
beforeEach(async () => {
|
|
47
|
-
await db.beforeEach();
|
|
48
|
-
postMock.mockReset();
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
afterEach(async () => {
|
|
52
|
-
await db.afterEach();
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
describe('knative worker integration with job queue', () => {
|
|
56
|
-
const databaseId = '5b720132-17d5-424d-9bcb-ee7b17c13d43';
|
|
57
|
-
|
|
58
|
-
it('pulls a job from the queue and posts to Knative service', async () => {
|
|
59
|
-
const insertedJob = await db.one(
|
|
60
|
-
'SELECT * FROM app_jobs.add_job($1::uuid, $2::text, $3::json);',
|
|
61
|
-
[databaseId, 'example-fn', { hello: 'world' }]
|
|
62
|
-
);
|
|
63
|
-
|
|
64
|
-
const worker = new Worker({
|
|
65
|
-
tasks: ['example-fn'],
|
|
66
|
-
pgPool: {} as any,
|
|
67
|
-
workerId: 'worker-integration-1'
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
const job = await jobUtils.getJob(db as any, {
|
|
71
|
-
workerId: 'worker-integration-1',
|
|
72
|
-
supportedTaskNames: null
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
expect(job).toBeTruthy();
|
|
76
|
-
expect(job.id).toBe(insertedJob.id);
|
|
77
|
-
|
|
78
|
-
postMock.mockImplementation(
|
|
79
|
-
(options: any, callback: (err: any) => void) => callback(null)
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
await (worker as any).doWork(job);
|
|
83
|
-
|
|
84
|
-
expect(postMock).toHaveBeenCalledTimes(1);
|
|
85
|
-
const [options] = postMock.mock.calls[0];
|
|
86
|
-
expect(options.url).toBe('http://example-fn.knative.internal');
|
|
87
|
-
expect(options.headers['X-Job-Id']).toBe(job.id);
|
|
88
|
-
expect(options.headers['X-Database-Id']).toBe(databaseId);
|
|
89
|
-
});
|
|
90
|
-
|
|
91
|
-
it('propagates errors from failed Knative calls while keeping job queue interactions intact', async () => {
|
|
92
|
-
await db.one(
|
|
93
|
-
'SELECT * FROM app_jobs.add_job($1::uuid, $2::text, $3::json);',
|
|
94
|
-
[databaseId, 'example-fn', { hello: 'world' }]
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
const worker = new Worker({
|
|
98
|
-
tasks: ['example-fn'],
|
|
99
|
-
pgPool: {} as any,
|
|
100
|
-
workerId: 'worker-integration-2'
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
const job = await jobUtils.getJob(db as any, {
|
|
104
|
-
workerId: 'worker-integration-2',
|
|
105
|
-
supportedTaskNames: null
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
postMock.mockImplementation(
|
|
109
|
-
(options: any, callback: (err: any) => void) =>
|
|
110
|
-
callback(new Error('knative failure'))
|
|
111
|
-
);
|
|
112
|
-
|
|
113
|
-
await expect((worker as any).doWork(job)).rejects.toThrow(
|
|
114
|
-
'knative failure'
|
|
115
|
-
);
|
|
116
|
-
});
|
|
117
|
-
});
|
package/jest.config.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/** @type {import('ts-jest').JestConfigWithTsJest} */
|
|
2
|
-
module.exports = {
|
|
3
|
-
preset: 'ts-jest',
|
|
4
|
-
testEnvironment: 'node',
|
|
5
|
-
transform: {
|
|
6
|
-
'^.+\\.tsx?$': [
|
|
7
|
-
'ts-jest',
|
|
8
|
-
{
|
|
9
|
-
babelConfig: false,
|
|
10
|
-
tsconfig: 'tsconfig.json',
|
|
11
|
-
},
|
|
12
|
-
],
|
|
13
|
-
},
|
|
14
|
-
transformIgnorePatterns: [`/node_modules/*`],
|
|
15
|
-
testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$',
|
|
16
|
-
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
|
|
17
|
-
modulePathIgnorePatterns: ['dist/*'],
|
|
18
|
-
};
|