directus

Форк
0
/
environment.ts 
63 строки · 1.6 Кб
1
import axios from 'axios';
2
import fs from 'node:fs/promises';
3
import type { Environment } from 'vitest';
4
import { USER } from '../common/variables';
5
import { getReversedTestIndex } from './sequential-tests';
6
import { sleep } from '../utils/sleep';
7

8
export default <Environment>{
9
	name: 'custom',
10
	transformMode: 'ssr',
11

12
	async setup(global) {
13
		const { totalTestsCount } = JSON.parse(await fs.readFile('sequencer-data.json', 'utf8'));
14
		const testFilePath = global.__vitest_worker__.ctx.files[0].split('blackbox')[1];
15
		const serverUrl = process.env['serverUrl'];
16

17
		if (!serverUrl || isNaN(totalTestsCount)) {
18
			throw 'Missing flow env variables';
19
		}
20

21
		const testIndex = getReversedTestIndex(testFilePath, global.__vitest_worker__.ctx.config.name);
22

23
		while (testIndex !== 0) {
24
			try {
25
				const response = await axios.get(`${serverUrl}/items/tests_flow_completed`, {
26
					params: {
27
						'aggregate[count]': 'id',
28
					},
29
					headers: {
30
						Authorization: `Bearer ${USER.TESTS_FLOW.TOKEN}`,
31
					},
32
				});
33

34
				const completedCount = Number(response.data.data[0].count.id);
35

36
				if (testIndex >= 0) {
37
					if (completedCount >= testIndex) break;
38
				} else if (totalTestsCount + testIndex === completedCount) {
39
					break;
40
				}
41
			} catch (err) {
42
				continue;
43
			}
44

45
			await sleep(1000);
46
		}
47

48
		return {
49
			async teardown() {
50
				const body = {
51
					test_file_path: testFilePath,
52
				};
53

54
				await axios.post(`${serverUrl}/items/tests_flow_completed`, body, {
55
					headers: {
56
						Authorization: `Bearer ${USER.TESTS_FLOW.TOKEN}`,
57
						'Content-Type': 'application/json',
58
					},
59
				});
60
			},
61
		};
62
	},
63
};
64

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.