Skip to content

Commit 8482edc

Browse files
authored
Merge pull request #47 from crazy-max/esm
switch to ESM and update config/test wiring
2 parents e79596b + 0740da8 commit 8482edc

16 files changed

Lines changed: 1244 additions & 3581 deletions

.prettierrc.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,5 @@
66
"singleQuote": true,
77
"trailingComma": "none",
88
"bracketSpacing": false,
9-
"arrowParens": "avoid",
10-
"parser": "typescript"
9+
"arrowParens": "avoid"
1110
}

__tests__/context.test.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
import {beforeEach, describe, expect, jest, test} from '@jest/globals';
1+
import {beforeEach, describe, expect, vi, test} from 'vitest';
22
import * as fs from 'fs';
3+
import * as os from 'os';
34
import * as path from 'path';
45

5-
import {Context} from '@docker/actions-toolkit/lib/context';
6+
import {Context} from '@docker/actions-toolkit/lib/context.js';
67

7-
import * as context from '../src/context';
8+
import * as context from '../src/context.js';
89

9-
// prettier-ignore
10-
const tmpDir = path.join(process.env.TEMP || '/tmp', 'setup-compose-jest');
11-
const tmpName = path.join(tmpDir, '.tmpname-jest');
10+
const tmpDir = fs.mkdtempSync(path.join(process.env.TEMP || os.tmpdir(), 'context-'));
11+
const tmpName = path.join(tmpDir, '.tmpname-vi');
1212

13-
jest.spyOn(Context, 'tmpDir').mockImplementation((): string => {
13+
vi.spyOn(Context, 'tmpDir').mockImplementation((): string => {
1414
if (!fs.existsSync(tmpDir)) {
1515
fs.mkdirSync(tmpDir, {recursive: true});
1616
}
1717
return tmpDir;
1818
});
1919

20-
jest.spyOn(Context, 'tmpName').mockImplementation((): string => {
20+
vi.spyOn(Context, 'tmpName').mockImplementation((): string => {
2121
return tmpName;
2222
});
2323

__tests__/setup.unit.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import fs from 'node:fs';
2+
import os from 'node:os';
3+
import path from 'node:path';
4+
5+
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-actions-toolkit-'));
6+
7+
process.env = Object.assign({}, process.env, {
8+
TEMP: tmpDir,
9+
GITHUB_REPOSITORY: 'docker/setup-compose-action',
10+
RUNNER_TEMP: path.join(tmpDir, 'runner-temp'),
11+
RUNNER_TOOL_CACHE: path.join(tmpDir, 'runner-tool-cache')
12+
});

dev.Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ FROM deps AS test
7474
RUN --mount=type=bind,target=.,rw \
7575
--mount=type=cache,target=/src/.yarn/cache \
7676
--mount=type=cache,target=/src/node_modules \
77-
yarn run test --coverage --coverageDirectory=/tmp/coverage
77+
yarn run test --coverage --coverage.reportsDirectory=/tmp/coverage
7878

7979
FROM scratch AS test-coverage
8080
COPY --from=test /tmp/coverage /

dist/index.js

Lines changed: 16 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/package.json

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eslint.config.js

Lines changed: 0 additions & 58 deletions
This file was deleted.

eslint.config.mjs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import {defineConfig} from 'eslint/config';
2+
import js from '@eslint/js';
3+
import tseslint from '@typescript-eslint/eslint-plugin';
4+
import vitest from '@vitest/eslint-plugin';
5+
import globals from 'globals';
6+
import eslintConfigPrettier from 'eslint-config-prettier/flat';
7+
import eslintPluginPrettier from 'eslint-plugin-prettier';
8+
9+
export default defineConfig([
10+
{
11+
ignores: ['.yarn/**/*', 'coverage/**/*', 'dist/**/*']
12+
},
13+
js.configs.recommended,
14+
...tseslint.configs['flat/recommended'],
15+
eslintConfigPrettier,
16+
{
17+
languageOptions: {
18+
globals: {
19+
...globals.node
20+
}
21+
}
22+
},
23+
{
24+
files: ['__tests__/**'],
25+
...vitest.configs.recommended,
26+
languageOptions: {
27+
globals: {
28+
...globals.node,
29+
...vitest.environments.env.globals
30+
}
31+
},
32+
rules: {
33+
...vitest.configs.recommended.rules,
34+
'vitest/no-conditional-expect': 'error',
35+
'vitest/no-disabled-tests': 0
36+
}
37+
},
38+
{
39+
plugins: {
40+
prettier: eslintPluginPrettier
41+
},
42+
rules: {
43+
'prettier/prettier': 'error',
44+
'@typescript-eslint/no-require-imports': [
45+
'error',
46+
{
47+
allowAsImport: true
48+
}
49+
]
50+
}
51+
}
52+
]);

0 commit comments

Comments
 (0)