scrapemyferry 1.0.1 → 1.0.2

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.
Files changed (152) hide show
  1. package/bin/scrapemyferry.js +0 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +90 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/index.d.ts +2 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +18 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/index.d.ts +3 -0
  11. package/dist/lib/index.d.ts.map +1 -0
  12. package/dist/lib/index.js +7 -0
  13. package/dist/lib/index.js.map +1 -0
  14. package/dist/lib/setup.d.ts +2 -0
  15. package/dist/lib/setup.d.ts.map +1 -0
  16. package/dist/lib/setup.js +13 -0
  17. package/dist/lib/setup.js.map +1 -0
  18. package/dist/lib/sources/bcf/config.d.ts +7 -0
  19. package/dist/lib/sources/bcf/config.d.ts.map +1 -0
  20. package/dist/lib/sources/bcf/config.js +10 -0
  21. package/dist/lib/sources/bcf/config.js.map +1 -0
  22. package/dist/lib/sources/bcf/currentConditions.d.ts +3 -0
  23. package/dist/lib/sources/bcf/currentConditions.d.ts.map +1 -0
  24. package/dist/lib/sources/bcf/currentConditions.js +113 -0
  25. package/dist/lib/sources/bcf/currentConditions.js.map +1 -0
  26. package/dist/lib/sources/bcf/dailySchedule.d.ts +3 -0
  27. package/dist/lib/sources/bcf/dailySchedule.d.ts.map +1 -0
  28. package/dist/lib/sources/bcf/dailySchedule.js +43 -0
  29. package/dist/lib/sources/bcf/dailySchedule.js.map +1 -0
  30. package/dist/lib/sources/bcf/departures.d.ts +3 -0
  31. package/dist/lib/sources/bcf/departures.d.ts.map +1 -0
  32. package/dist/lib/sources/bcf/departures.js +101 -0
  33. package/dist/lib/sources/bcf/departures.js.map +1 -0
  34. package/dist/lib/sources/bcf/index.d.ts +8 -0
  35. package/dist/lib/sources/bcf/index.d.ts.map +1 -0
  36. package/dist/lib/sources/bcf/index.js +18 -0
  37. package/dist/lib/sources/bcf/index.js.map +1 -0
  38. package/dist/lib/sources/bcf/routes.d.ts +3 -0
  39. package/dist/lib/sources/bcf/routes.d.ts.map +1 -0
  40. package/dist/lib/sources/bcf/routes.js +93 -0
  41. package/dist/lib/sources/bcf/routes.js.map +1 -0
  42. package/dist/lib/sources/bcf/sailing.d.ts +3 -0
  43. package/dist/lib/sources/bcf/sailing.d.ts.map +1 -0
  44. package/dist/lib/sources/bcf/sailing.js +60 -0
  45. package/dist/lib/sources/bcf/sailing.js.map +1 -0
  46. package/dist/lib/sources/bcf/seasonalSchedule.d.ts +3 -0
  47. package/dist/lib/sources/bcf/seasonalSchedule.d.ts.map +1 -0
  48. package/dist/lib/sources/bcf/seasonalSchedule.js +76 -0
  49. package/dist/lib/sources/bcf/seasonalSchedule.js.map +1 -0
  50. package/dist/lib/sources/bcf/tests/config.test.d.ts +2 -0
  51. package/dist/lib/sources/bcf/tests/config.test.d.ts.map +1 -0
  52. package/dist/lib/sources/bcf/tests/config.test.js +24 -0
  53. package/dist/lib/sources/bcf/tests/config.test.js.map +1 -0
  54. package/dist/lib/sources/bcf/tests/currentConditions.live.test.d.ts +2 -0
  55. package/dist/lib/sources/bcf/tests/currentConditions.live.test.d.ts.map +1 -0
  56. package/dist/lib/sources/bcf/tests/currentConditions.live.test.js +26 -0
  57. package/dist/lib/sources/bcf/tests/currentConditions.live.test.js.map +1 -0
  58. package/dist/lib/sources/bcf/tests/currentConditions.test.d.ts +2 -0
  59. package/dist/lib/sources/bcf/tests/currentConditions.test.d.ts.map +1 -0
  60. package/dist/lib/sources/bcf/tests/currentConditions.test.js +169 -0
  61. package/dist/lib/sources/bcf/tests/currentConditions.test.js.map +1 -0
  62. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.d.ts +2 -0
  63. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.d.ts.map +1 -0
  64. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.js +19 -0
  65. package/dist/lib/sources/bcf/tests/dailySchedule.live.test.js.map +1 -0
  66. package/dist/lib/sources/bcf/tests/dailySchedule.test.d.ts +2 -0
  67. package/dist/lib/sources/bcf/tests/dailySchedule.test.d.ts.map +1 -0
  68. package/dist/lib/sources/bcf/tests/dailySchedule.test.js +76 -0
  69. package/dist/lib/sources/bcf/tests/dailySchedule.test.js.map +1 -0
  70. package/dist/lib/sources/bcf/tests/departures.live.test.d.ts +2 -0
  71. package/dist/lib/sources/bcf/tests/departures.live.test.d.ts.map +1 -0
  72. package/dist/lib/sources/bcf/tests/departures.live.test.js +25 -0
  73. package/dist/lib/sources/bcf/tests/departures.live.test.js.map +1 -0
  74. package/dist/lib/sources/bcf/tests/departures.test.d.ts +2 -0
  75. package/dist/lib/sources/bcf/tests/departures.test.d.ts.map +1 -0
  76. package/dist/lib/sources/bcf/tests/departures.test.js +408 -0
  77. package/dist/lib/sources/bcf/tests/departures.test.js.map +1 -0
  78. package/dist/lib/sources/bcf/tests/fixtures/availability.json +1 -0
  79. package/dist/lib/sources/bcf/tests/fixtures/current-conditions/departures.json +1 -0
  80. package/dist/lib/sources/bcf/tests/fixtures/current-conditions.json +1 -0
  81. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules/daily.json +1 -0
  82. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules/seasonal.json +1 -0
  83. package/dist/lib/sources/bcf/tests/fixtures/routes-fares/schedules.json +1 -0
  84. package/dist/lib/sources/bcf/tests/routes.live.test.d.ts +2 -0
  85. package/dist/lib/sources/bcf/tests/routes.live.test.d.ts.map +1 -0
  86. package/dist/lib/sources/bcf/tests/routes.live.test.js +28 -0
  87. package/dist/lib/sources/bcf/tests/routes.live.test.js.map +1 -0
  88. package/dist/lib/sources/bcf/tests/routes.test.d.ts +2 -0
  89. package/dist/lib/sources/bcf/tests/routes.test.d.ts.map +1 -0
  90. package/dist/lib/sources/bcf/tests/routes.test.js +363 -0
  91. package/dist/lib/sources/bcf/tests/routes.test.js.map +1 -0
  92. package/dist/lib/sources/bcf/tests/sailing.live.test.d.ts +2 -0
  93. package/dist/lib/sources/bcf/tests/sailing.live.test.d.ts.map +1 -0
  94. package/dist/lib/sources/bcf/tests/sailing.live.test.js +25 -0
  95. package/dist/lib/sources/bcf/tests/sailing.live.test.js.map +1 -0
  96. package/dist/lib/sources/bcf/tests/sailing.test.d.ts +2 -0
  97. package/dist/lib/sources/bcf/tests/sailing.test.d.ts.map +1 -0
  98. package/dist/lib/sources/bcf/tests/sailing.test.js +53 -0
  99. package/dist/lib/sources/bcf/tests/sailing.test.js.map +1 -0
  100. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.d.ts +2 -0
  101. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.d.ts.map +1 -0
  102. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.js +22 -0
  103. package/dist/lib/sources/bcf/tests/seasonalSchedule.live.test.js.map +1 -0
  104. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.d.ts +2 -0
  105. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.d.ts.map +1 -0
  106. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.js +403 -0
  107. package/dist/lib/sources/bcf/tests/seasonalSchedule.test.js.map +1 -0
  108. package/dist/lib/sources/bcf/tests/urls.test.d.ts +2 -0
  109. package/dist/lib/sources/bcf/tests/urls.test.d.ts.map +1 -0
  110. package/dist/lib/sources/bcf/tests/urls.test.js +69 -0
  111. package/dist/lib/sources/bcf/tests/urls.test.js.map +1 -0
  112. package/dist/lib/sources/bcf/tests/utils.test.d.ts +2 -0
  113. package/dist/lib/sources/bcf/tests/utils.test.d.ts.map +1 -0
  114. package/dist/lib/sources/bcf/tests/utils.test.js +79 -0
  115. package/dist/lib/sources/bcf/tests/utils.test.js.map +1 -0
  116. package/dist/lib/sources/bcf/urls.d.ts +11 -0
  117. package/dist/lib/sources/bcf/urls.d.ts.map +1 -0
  118. package/dist/lib/sources/bcf/urls.js +68 -0
  119. package/dist/lib/sources/bcf/urls.js.map +1 -0
  120. package/dist/lib/sources/bcf/utils.d.ts +6 -0
  121. package/dist/lib/sources/bcf/utils.d.ts.map +1 -0
  122. package/dist/lib/sources/bcf/utils.js +47 -0
  123. package/dist/lib/sources/bcf/utils.js.map +1 -0
  124. package/dist/lib/sources/index.d.ts +2 -0
  125. package/dist/lib/sources/index.d.ts.map +1 -0
  126. package/dist/lib/sources/index.js +6 -0
  127. package/dist/lib/sources/index.js.map +1 -0
  128. package/dist/lib/sources/source.d.ts +3 -0
  129. package/dist/lib/sources/source.d.ts.map +1 -0
  130. package/dist/lib/sources/source.js +34 -0
  131. package/dist/lib/sources/source.js.map +1 -0
  132. package/dist/lib/sources/types.d.ts +111 -0
  133. package/dist/lib/sources/types.d.ts.map +1 -0
  134. package/dist/lib/sources/types.js +3 -0
  135. package/dist/lib/sources/types.js.map +1 -0
  136. package/dist/lib/test/jest-conditional.d.ts +11 -0
  137. package/dist/lib/test/jest-conditional.d.ts.map +1 -0
  138. package/dist/lib/test/jest-conditional.js +22 -0
  139. package/dist/lib/test/jest-conditional.js.map +1 -0
  140. package/dist/lib/test/setup-jest-env.d.ts +2 -0
  141. package/dist/lib/test/setup-jest-env.d.ts.map +1 -0
  142. package/dist/lib/test/setup-jest-env.js +30 -0
  143. package/dist/lib/test/setup-jest-env.js.map +1 -0
  144. package/dist/lib/test/setup-jest-global.d.ts +2 -0
  145. package/dist/lib/test/setup-jest-global.d.ts.map +1 -0
  146. package/dist/lib/test/setup-jest-global.js +7 -0
  147. package/dist/lib/test/setup-jest-global.js.map +1 -0
  148. package/dist/lib/test/setup-jest.d.ts +2 -0
  149. package/dist/lib/test/setup-jest.d.ts.map +1 -0
  150. package/dist/lib/test/setup-jest.js +5 -0
  151. package/dist/lib/test/setup-jest.js.map +1 -0
  152. package/package.json +13 -12
@@ -0,0 +1,363 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const routes_1 = require("../routes");
7
+ const schedules_json_1 = __importDefault(require("./fixtures/routes-fares/schedules.json"));
8
+ jest.mock('axios');
9
+ const axiosMock = jest.requireMock('axios').default;
10
+ describe('Routes', () => {
11
+ function scrape() {
12
+ return (0, routes_1.routes)();
13
+ }
14
+ beforeEach(() => {
15
+ axiosMock.mockResolvedValue({ data: schedules_json_1.default });
16
+ });
17
+ it('returns routes from the route fares schedules page', async () => {
18
+ const result = await scrape();
19
+ const url = 'https://www.bcferries.com/routes-fares/schedules';
20
+ expect(axiosMock).toHaveBeenCalledWith(url);
21
+ expect(result).toStrictEqual({
22
+ url,
23
+ regions: [
24
+ {
25
+ name: 'Metro Vancouver',
26
+ from: [
27
+ {
28
+ name: 'Vancouver (Tsawwassen)',
29
+ code: 'TSA',
30
+ to: [
31
+ {
32
+ name: 'Galiano Island (Sturdies Bay)',
33
+ code: 'PSB',
34
+ urlPath: '/routes-fares/schedules/seasonal/TSA-PSB',
35
+ },
36
+ {
37
+ name: 'Mayne Island (Village Bay)',
38
+ code: 'PVB',
39
+ urlPath: '/routes-fares/schedules/seasonal/TSA-PVB',
40
+ },
41
+ {
42
+ name: 'Nanaimo (Duke Point)',
43
+ code: 'DUK',
44
+ urlPath: '/routes-fares/schedules/seasonal/TSA-DUK',
45
+ },
46
+ {
47
+ name: 'Pender Island (Otter Bay)',
48
+ code: 'POB',
49
+ urlPath: '/routes-fares/schedules/seasonal/TSA-POB',
50
+ },
51
+ {
52
+ name: 'Salt Spring Island (Long Harbour)',
53
+ code: 'PLH',
54
+ urlPath: '/routes-fares/schedules/seasonal/TSA-PLH',
55
+ },
56
+ {
57
+ name: 'Saturna Island (Lyall Harbour)',
58
+ code: 'PST',
59
+ urlPath: '/routes-fares/schedules/seasonal/TSA-PST',
60
+ },
61
+ {
62
+ name: 'Victoria (Swartz Bay)',
63
+ code: 'SWB',
64
+ urlPath: '/routes-fares/schedules/seasonal/TSA-SWB',
65
+ },
66
+ ],
67
+ },
68
+ {
69
+ name: 'Vancouver (Horseshoe Bay)',
70
+ code: 'HSB',
71
+ to: [
72
+ {
73
+ name: 'Bowen Island (Snug Cove)',
74
+ code: 'BOW',
75
+ urlPath: '/routes-fares/schedules/seasonal/HSB-BOW',
76
+ },
77
+ {
78
+ name: 'Nanaimo (Departure Bay)',
79
+ code: 'NAN',
80
+ urlPath: '/routes-fares/schedules/seasonal/HSB-NAN',
81
+ },
82
+ {
83
+ name: 'Sunshine Coast (Langdale)',
84
+ code: 'LNG',
85
+ urlPath: '/routes-fares/schedules/seasonal/HSB-LNG',
86
+ },
87
+ ],
88
+ },
89
+ ],
90
+ },
91
+ {
92
+ name: 'Vancouver Island',
93
+ from: [
94
+ {
95
+ name: 'Victoria (Swartz Bay)',
96
+ code: 'SWB',
97
+ to: expect.arrayContaining([
98
+ {
99
+ name: 'Salt Spring Island (Fulford Harbour)',
100
+ code: 'FUL',
101
+ urlPath: '/routes-fares/schedules/seasonal/SWB-FUL',
102
+ },
103
+ {
104
+ name: 'Vancouver (Tsawwassen)',
105
+ code: 'TSA',
106
+ urlPath: '/routes-fares/schedules/seasonal/SWB-TSA',
107
+ },
108
+ ]),
109
+ },
110
+ {
111
+ name: 'Nanaimo (Departure Bay)',
112
+ code: 'NAN',
113
+ to: [
114
+ {
115
+ name: 'Vancouver (Horseshoe Bay)',
116
+ code: 'HSB',
117
+ urlPath: '/routes-fares/schedules/seasonal/NAN-HSB',
118
+ },
119
+ ],
120
+ },
121
+ {
122
+ name: 'Nanaimo (Duke Point)',
123
+ code: 'DUK',
124
+ to: [
125
+ {
126
+ name: 'Vancouver (Tsawwassen)',
127
+ code: 'TSA',
128
+ urlPath: '/routes-fares/schedules/seasonal/DUK-TSA',
129
+ },
130
+ ],
131
+ },
132
+ {
133
+ name: 'Nanaimo (Nanaimo Harbour)',
134
+ code: 'NAH',
135
+ to: expect.any(Array),
136
+ },
137
+ {
138
+ name: 'Comox (Little River)',
139
+ code: 'CMX',
140
+ to: expect.any(Array),
141
+ },
142
+ {
143
+ name: 'Port Hardy (Bear Cove)',
144
+ code: 'PPH',
145
+ to: expect.any(Array),
146
+ },
147
+ { name: 'Brentwood Bay', code: 'BTW', to: expect.any(Array) },
148
+ { name: 'Buckley Bay', code: 'BKY', to: expect.any(Array) },
149
+ { name: 'Campbell River', code: 'CAM', to: expect.any(Array) },
150
+ { name: 'Chemainus', code: 'CHM', to: expect.any(Array) },
151
+ { name: 'Crofton', code: 'CFT', to: expect.any(Array) },
152
+ { name: 'Mill Bay', code: 'MIL', to: expect.any(Array) },
153
+ { name: 'Port McNeill', code: 'MCN', to: expect.any(Array) },
154
+ ],
155
+ },
156
+ {
157
+ name: 'Sunshine Coast',
158
+ from: [
159
+ {
160
+ name: 'Sunshine Coast (Langdale)',
161
+ code: 'LNG',
162
+ to: [
163
+ {
164
+ name: 'Vancouver (Horseshoe Bay)',
165
+ code: 'HSB',
166
+ urlPath: '/routes-fares/schedules/seasonal/LNG-HSB',
167
+ },
168
+ {
169
+ name: 'Gambier (New Brighton) & Keats (Keats Landing)',
170
+ code: 'gambier-keats',
171
+ urlPath: '/routes-fares/schedules/gambier-keats',
172
+ special: true,
173
+ },
174
+ ],
175
+ },
176
+ {
177
+ name: 'Powell River (Westview)',
178
+ code: 'PWR',
179
+ to: expect.any(Array),
180
+ },
181
+ {
182
+ name: 'Powell River (Saltery Bay)',
183
+ code: 'SLT',
184
+ to: expect.any(Array),
185
+ },
186
+ {
187
+ name: 'Sunshine Coast (Earls Cove)',
188
+ code: 'ERL',
189
+ to: expect.any(Array),
190
+ },
191
+ {
192
+ name: 'Texada Island (Blubber Bay)',
193
+ code: 'TEX',
194
+ to: expect.any(Array),
195
+ },
196
+ ],
197
+ },
198
+ {
199
+ name: 'Southern Gulf Islands',
200
+ from: [
201
+ {
202
+ name: 'Vancouver (Tsawwassen)',
203
+ code: 'TSA',
204
+ to: expect.arrayContaining([
205
+ {
206
+ name: 'Salt Spring Island (Long Harbour)',
207
+ code: 'PLH',
208
+ urlPath: '/routes-fares/schedules/seasonal/TSA-PLH',
209
+ },
210
+ ]),
211
+ },
212
+ {
213
+ name: 'Victoria (Swartz Bay)',
214
+ code: 'SWB',
215
+ to: expect.arrayContaining([
216
+ {
217
+ name: 'Salt Spring Island (Fulford Harbour)',
218
+ code: 'FUL',
219
+ urlPath: '/routes-fares/schedules/seasonal/SWB-FUL',
220
+ },
221
+ ]),
222
+ },
223
+ { name: 'Chemainus', code: 'CHM', to: expect.any(Array) },
224
+ {
225
+ name: 'Pender Island (Otter Bay)',
226
+ code: 'POB',
227
+ to: expect.any(Array),
228
+ },
229
+ {
230
+ name: 'Galiano Island (Sturdies Bay)',
231
+ code: 'PSB',
232
+ to: expect.any(Array),
233
+ },
234
+ {
235
+ name: 'Mayne Island (Village Bay)',
236
+ code: 'PVB',
237
+ to: expect.any(Array),
238
+ },
239
+ {
240
+ name: 'Saturna Island (Lyall Harbour)',
241
+ code: 'PST',
242
+ to: expect.any(Array),
243
+ },
244
+ {
245
+ name: 'Gabriola Island (Descanso Bay)',
246
+ code: 'GAB',
247
+ to: expect.any(Array),
248
+ },
249
+ {
250
+ name: 'Penelakut Island (Telegraph Harbour)',
251
+ code: 'PEN',
252
+ to: expect.any(Array),
253
+ },
254
+ {
255
+ name: 'Salt Spring Island (Long Harbour)',
256
+ code: 'PLH',
257
+ to: expect.any(Array),
258
+ },
259
+ {
260
+ name: 'Salt Spring Island (Vesuvius Bay)',
261
+ code: 'VES',
262
+ to: expect.any(Array),
263
+ },
264
+ {
265
+ name: 'Salt Spring Island (Fulford Harbour)',
266
+ code: 'FUL',
267
+ to: expect.any(Array),
268
+ },
269
+ {
270
+ name: 'Thetis Island (Preedy Harbour)',
271
+ code: 'THT',
272
+ to: expect.any(Array),
273
+ },
274
+ ],
275
+ },
276
+ {
277
+ name: 'Northern Gulf Islands',
278
+ from: [
279
+ {
280
+ name: 'Cormorant Island (Alert Bay)',
281
+ code: 'ALR',
282
+ to: expect.any(Array),
283
+ },
284
+ {
285
+ name: 'Cortes Island (Whaletown)',
286
+ code: 'COR',
287
+ to: expect.any(Array),
288
+ },
289
+ {
290
+ name: 'Denman Island West',
291
+ code: 'DNM',
292
+ to: expect.any(Array),
293
+ },
294
+ {
295
+ name: 'Denman Island East (Gravelly Bay)',
296
+ code: 'DNE',
297
+ to: expect.any(Array),
298
+ },
299
+ {
300
+ name: 'Hornby Island (Shingle Spit)',
301
+ code: 'HRN',
302
+ to: expect.any(Array),
303
+ },
304
+ {
305
+ name: 'Malcolm Island (Sointula)',
306
+ code: 'SOI',
307
+ to: expect.any(Array),
308
+ },
309
+ {
310
+ name: 'Quadra Island (Heriot Bay)',
311
+ code: 'HRB',
312
+ to: expect.any(Array),
313
+ },
314
+ {
315
+ name: 'Quadra Island (Quathiaski Cove)',
316
+ code: 'QDR',
317
+ to: expect.any(Array),
318
+ },
319
+ ],
320
+ },
321
+ {
322
+ name: 'Central Coast',
323
+ from: [
324
+ {
325
+ name: 'Port Hardy (Bear Cove)',
326
+ code: 'PPH',
327
+ to: expect.any(Array),
328
+ },
329
+ { name: 'Bella Coola', code: 'BEC', to: expect.any(Array) },
330
+ {
331
+ name: 'Bella Bella (McLoughlin Bay)',
332
+ code: 'PBB',
333
+ to: expect.any(Array),
334
+ },
335
+ { name: 'Ocean Falls', code: 'POF', to: expect.any(Array) },
336
+ { name: 'Shearwater', code: 'SHW', to: expect.any(Array) },
337
+ { name: 'Klemtu', code: 'KLE', to: expect.any(Array) },
338
+ ],
339
+ },
340
+ {
341
+ name: 'North Coast',
342
+ from: [
343
+ { name: 'Prince Rupert', code: 'PPR', to: expect.any(Array) },
344
+ { name: 'Klemtu', code: 'KLE', to: expect.any(Array) },
345
+ ],
346
+ },
347
+ {
348
+ name: 'Haida Gwaii',
349
+ from: [
350
+ {
351
+ name: 'Graham Island (Skidegate)',
352
+ code: 'PSK',
353
+ to: expect.any(Array),
354
+ },
355
+ { name: 'Moresby Island', code: 'ALF', to: expect.any(Array) },
356
+ { name: 'Prince Rupert', code: 'PPR', to: expect.any(Array) },
357
+ ],
358
+ },
359
+ ],
360
+ });
361
+ });
362
+ });
363
+ //# sourceMappingURL=routes.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.test.js","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/routes.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sailing.live.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sailing.live.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/sailing.live.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const sailing_1 = require("../sailing");
4
+ describe('Sailing', () => {
5
+ // this is necessary for jest to not complain about an empty test suite
6
+ it('live tests disabled by default', () => { });
7
+ it.if(process.env.LIVE_TESTS, 'LIVE test', async () => {
8
+ const result = await (0, sailing_1.sailing)('HSB', 'LNG', '14:10');
9
+ expect(result).toBeDefined();
10
+ expect(result.url).toBeDefined();
11
+ expect(result.time).toBeDefined();
12
+ expect(result.time).toMatch(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z$/);
13
+ expect(result.space).toBeDefined();
14
+ expect(result.space.total).toBeDefined();
15
+ expect(result.space.total).toBeGreaterThan(0);
16
+ expect(result.space.total).toBeLessThanOrEqual(1);
17
+ expect(result.space.standard).toBeDefined();
18
+ expect(result.space.standard).toBeGreaterThan(0);
19
+ expect(result.space.standard).toBeLessThanOrEqual(1);
20
+ expect(result.space.mixed).toBeDefined();
21
+ expect(result.space.mixed).toBeGreaterThan(0);
22
+ expect(result.space.mixed).toBeLessThanOrEqual(1);
23
+ }, 30_000);
24
+ });
25
+ //# sourceMappingURL=sailing.live.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sailing.live.test.js","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/sailing.live.test.ts"],"names":[],"mappings":";;AAAA,wCAAoC;AAEpC,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,uEAAuE;IACvE,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAE9C,EAAE,CAAC,EAAE,CACH,OAAO,CAAC,GAAG,CAAC,UAAU,EACtB,WAAW,EACX,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAO,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;QAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CACzB,8CAA8C,CAC/C,CAAA;QAED,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;QAClC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAA;IACnD,CAAC,EACD,MAAM,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sailing.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sailing.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/sailing.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const dayjs_1 = __importDefault(require("dayjs"));
7
+ const sailing_1 = require("../sailing");
8
+ const availability_json_1 = __importDefault(require("./fixtures/availability.json"));
9
+ const config_1 = require("../config");
10
+ jest.mock('axios');
11
+ const axiosMock = jest.requireMock('axios').default;
12
+ describe('Sailing', () => {
13
+ const currentDate = (0, dayjs_1.default)().tz(config_1.tz).format('YYYY-MM-DD');
14
+ function scrape({ from = 'HSB', to = 'LNG', time = '14:10', date, } = {}) {
15
+ return (0, sailing_1.sailing)(from, to, time, date);
16
+ }
17
+ beforeEach(() => {
18
+ axiosMock.mockResolvedValue({ data: availability_json_1.default });
19
+ });
20
+ it('returns routes from the route fares schedules page for the current date', async () => {
21
+ const result = await scrape();
22
+ const url = `https://www.bcferries.com/sailing-availability?departureTime=${currentDate}%2014:10:00&routeCode=HSB-LNG`;
23
+ expect(axiosMock).toHaveBeenCalledWith(url);
24
+ expect(result).toStrictEqual({
25
+ url,
26
+ time: (0, dayjs_1.default)(`${currentDate} 14:23:00`, 'YYYY-MM-DD HH:mm:ss').toISOString(),
27
+ space: {
28
+ total: 0.2,
29
+ standard: 0.03,
30
+ mixed: 0.64,
31
+ },
32
+ });
33
+ });
34
+ it('sets the correct timestamp based on the provided time', async () => {
35
+ const result = await scrape({ time: '2:10pm', date: '2025-01-01' });
36
+ const url = `https://www.bcferries.com/sailing-availability?departureTime=2025-01-01%2014:10:00&routeCode=HSB-LNG`;
37
+ expect(axiosMock).toHaveBeenCalledWith(url);
38
+ expect(result).toStrictEqual({
39
+ url,
40
+ time: (0, dayjs_1.default)('2025-01-01 14:23:00', 'YYYY-MM-DD HH:mm:ss').toISOString(),
41
+ space: {
42
+ total: 0.2,
43
+ standard: 0.03,
44
+ mixed: 0.64,
45
+ },
46
+ });
47
+ });
48
+ it('builds the correct URL for the provided terminals', async () => {
49
+ await scrape({ from: 'TSW', to: 'DUK' });
50
+ expect(axiosMock).toHaveBeenCalledWith(`https://www.bcferries.com/sailing-availability?departureTime=${currentDate}%2014:10:00&routeCode=TSW-DUK`);
51
+ });
52
+ });
53
+ //# sourceMappingURL=sailing.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sailing.test.js","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/sailing.test.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,wCAAoC;AACpC,qFAAkD;AAClD,sCAA8B;AAE9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAElB,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,OAAoB,CAAA;AAEhE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,MAAM,WAAW,GAAG,IAAA,eAAK,GAAE,CAAC,EAAE,CAAC,WAAE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;IAEvD,SAAS,MAAM,CAAC,EACd,IAAI,GAAG,KAAK,EACZ,EAAE,GAAG,KAAK,EACV,IAAI,GAAG,OAAO,EACd,IAAI,MAC4D,EAAE;QAClE,OAAO,IAAA,iBAAO,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IACtC,CAAC;IAED,UAAU,CAAC,GAAG,EAAE;QACd,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,EAAE,2BAAO,EAAE,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACvF,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAA;QAE7B,MAAM,GAAG,GAAG,gEAAgE,WAAW,+BAA+B,CAAA;QAEtH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,GAAG;YACH,IAAI,EAAE,IAAA,eAAK,EACT,GAAG,WAAW,WAAW,EACzB,qBAAqB,CACtB,CAAC,WAAW,EAAE;YACf,KAAK,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAA;QAEnE,MAAM,GAAG,GAAG,sGAAsG,CAAA;QAElH,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3B,GAAG;YACH,IAAI,EAAE,IAAA,eAAK,EAAC,qBAAqB,EAAE,qBAAqB,CAAC,CAAC,WAAW,EAAE;YACvE,KAAK,EAAE;gBACL,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;aACZ;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;QAExC,MAAM,CAAC,SAAS,CAAC,CAAC,oBAAoB,CACpC,gEAAgE,WAAW,+BAA+B,CAC3G,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seasonalSchedule.live.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seasonalSchedule.live.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/seasonalSchedule.live.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const seasonalSchedule_1 = require("../seasonalSchedule");
4
+ describe('Seasonal Schedule', () => {
5
+ // this is necessary for jest to not complain about an empty test suite
6
+ it('live tests disabled by default', () => { });
7
+ it.if(process.env.LIVE_TESTS, 'LIVE test', async () => {
8
+ const result = await (0, seasonalSchedule_1.seasonalSchedule)('HSB', 'LNG');
9
+ expect(result).toBeDefined();
10
+ expect(result.url).toBeDefined();
11
+ expect(result.days).toBeDefined();
12
+ expect(result.days.length).toBeGreaterThan(0);
13
+ expect(result.days[0].day).toBeDefined();
14
+ expect(result.days[0].sailings).toBeDefined();
15
+ expect(result.days[0].sailings.length).toBeGreaterThan(0);
16
+ expect(result.days[0].sailings[0].depart).toBeDefined();
17
+ expect(result.days[0].sailings[0].arrive).toBeDefined();
18
+ expect(result.days[0].sailings[0].duration).toBeDefined();
19
+ expect(result.days[0].sailings[0].messages).toBeDefined();
20
+ }, 30_000);
21
+ });
22
+ //# sourceMappingURL=seasonalSchedule.live.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seasonalSchedule.live.test.js","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/seasonalSchedule.live.test.ts"],"names":[],"mappings":";;AAAA,0DAAsD;AAEtD,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,uEAAuE;IACvE,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAE9C,EAAE,CAAC,EAAE,CACH,OAAO,CAAC,GAAG,CAAC,UAAU,EACtB,WAAW,EACX,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QAEnD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QAC5B,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAE7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QAC7C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;QAEzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAA;QACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;QACzD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAC3D,CAAC,EACD,MAAM,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=seasonalSchedule.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seasonalSchedule.test.d.ts","sourceRoot":"","sources":["../../../../../src/lib/sources/bcf/tests/seasonalSchedule.test.ts"],"names":[],"mappings":""}