|
1 | 1 | const { Browser, validateRequest, DEFAULT_OPTIONS } = require('./_helper'); |
2 | 2 | const { ActorListSortBy, ApifyClient, LoggerActorRedirect } = require('apify-client'); |
3 | 3 | const { stringifyWebhooksToBase64 } = require('../src/utils'); |
4 | | -const mockServer = require('./mock_server/server'); |
| 4 | +const { mockServer, createDefaultApp } = require('./mock_server/server'); |
5 | 5 | const c = require('ansi-colors'); |
6 | | -const { MOCKED_ACTOR_LOGS_PROCESSED, statusGenerator } = require('./mock_server/consts'); |
| 6 | +const { MOCKED_ACTOR_LOGS_PROCESSED, StatusGenerator } = require('./mock_server/consts'); |
7 | 7 | const { Log, LEVELS } = require('@apify/log'); |
| 8 | +const express = require('express'); |
8 | 9 |
|
9 | 10 | describe('Actor methods', () => { |
10 | 11 | let baseUrl; |
@@ -676,24 +677,40 @@ describe('Actor methods', () => { |
676 | 677 |
|
677 | 678 | describe('Run actor with redirected logs', () => { |
678 | 679 | let baseUrl; |
| 680 | + let client; |
| 681 | + const statusGenerator = new StatusGenerator(); |
679 | 682 |
|
680 | 683 | beforeAll(async () => { |
681 | | - // Ensure that the tests that use characters like á are correctly decoded in console. |
682 | | - process.stdout.setDefaultEncoding('utf8'); |
683 | | - const server = await mockServer.start(); |
| 684 | + // Use custom router for the tests |
| 685 | + const router = express.Router(); |
| 686 | + // Set up a status generator to simulate run status changes. It will be reset for each test. |
| 687 | + router.get('/actor-runs/redirect-run-id', async (req, res) => { |
| 688 | + // Delay the response to give the actor time to run and produce expected logs |
| 689 | + await new Promise((resolve) => { |
| 690 | + setTimeout(resolve, 10); |
| 691 | + }); |
| 692 | + const [status, statusMessage] = statusGenerator.next().value; |
| 693 | + res.json({ data: { id: 'redirect-run-id', actId: 'redirect-actor-id', status, statusMessage } }); |
| 694 | + }); |
| 695 | + const app = createDefaultApp(router); |
| 696 | + const server = await mockServer.start(undefined, app); |
684 | 697 | baseUrl = `http://localhost:${server.address().port}`; |
685 | 698 | }); |
686 | 699 |
|
687 | | - let client; |
| 700 | + afterAll(async () => { |
| 701 | + await Promise.all([mockServer.close()]); |
| 702 | + }); |
| 703 | + |
688 | 704 | beforeEach(async () => { |
689 | | - statusGenerator.reset(); |
690 | 705 | client = new ApifyClient({ |
691 | 706 | baseUrl, |
692 | 707 | maxRetries: 0, |
693 | 708 | ...DEFAULT_OPTIONS, |
694 | 709 | }); |
695 | 710 | }); |
696 | 711 | afterEach(async () => { |
| 712 | + // Reset the generator to so that the next test starts fresh |
| 713 | + statusGenerator.reset(); |
697 | 714 | client = null; |
698 | 715 | }); |
699 | 716 |
|
|
0 commit comments