From d1094786592fe8eee9310d2a179c740252145e1b Mon Sep 17 00:00:00 2001 From: Vladimir Gorej Date: Wed, 23 Oct 2024 21:29:57 +0200 Subject: [PATCH] test(apidom-parser-adapter-workflows-json-1): run tests in ESM mode --- .../.eslintignore | 6 +-- .../.gitignore | 5 ++- .../.mocharc.json | 4 +- .../package.json | 18 ++++----- .../test/.eslintrc | 39 +++++++++++++------ .../{adapter.ts.snap => adapter.mjs.snap} | 0 .../test/adapter.ts | 2 + .../test/mocha-bootstrap.cjs | 15 ------- .../test/mocha-bootstrap.ts | 11 ++++++ 9 files changed, 58 insertions(+), 42 deletions(-) rename packages/apidom-parser-adapter-workflows-json-1/test/__snapshots__/{adapter.ts.snap => adapter.mjs.snap} (100%) delete mode 100644 packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.cjs create mode 100644 packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.ts diff --git a/packages/apidom-parser-adapter-workflows-json-1/.eslintignore b/packages/apidom-parser-adapter-workflows-json-1/.eslintignore index 856320e627..23853b909a 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/.eslintignore +++ b/packages/apidom-parser-adapter-workflows-json-1/.eslintignore @@ -1,8 +1,8 @@ +/**/*.js +/**/*.mjs +/**/*.cjs /dist -/es -/cjs /types /config /.nyc_output /node_modules -/**/*.js diff --git a/packages/apidom-parser-adapter-workflows-json-1/.gitignore b/packages/apidom-parser-adapter-workflows-json-1/.gitignore index 8b3fb849ff..fdce9daef9 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/.gitignore +++ b/packages/apidom-parser-adapter-workflows-json-1/.gitignore @@ -1,6 +1,7 @@ +/src/**/*.mjs +/src/**/*.cjs +/test/**/*.mjs /dist -/es -/cjs /types /NOTICE /swagger-api-apidom-parser-adapter-workflows-json-1-*.tgz diff --git a/packages/apidom-parser-adapter-workflows-json-1/.mocharc.json b/packages/apidom-parser-adapter-workflows-json-1/.mocharc.json index e923c24114..f4f6530232 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/.mocharc.json +++ b/packages/apidom-parser-adapter-workflows-json-1/.mocharc.json @@ -1,5 +1,5 @@ { "recursive": true, - "spec": "test/**/*.ts", - "file": ["test/mocha-bootstrap.cjs"] + "spec": "test/**/*.mjs", + "file": ["test/mocha-bootstrap.mjs"] } diff --git a/packages/apidom-parser-adapter-workflows-json-1/package.json b/packages/apidom-parser-adapter-workflows-json-1/package.json index 350a57fd19..8defb96552 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/package.json +++ b/packages/apidom-parser-adapter-workflows-json-1/package.json @@ -9,24 +9,24 @@ "type": "module", "sideEffects": false, "unpkg": "./dist/apidom-parser-adapter-workflows-json-1.browser.min.js", - "main": "./cjs/adapter.cjs", + "main": "./src/adapter.cjs", "exports": { "types": "./types/dist.d.ts", - "import": "./es/adapter.mjs", - "require": "./cjs/adapter.cjs" + "import": "./src/adapter.mjs", + "require": "./src/adapter.cjs" }, "types": "./types/dist.d.ts", "scripts": { "build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser", - "build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'", - "build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'", + "build:es": "cross-env BABEL_ENV=es babel src --out-dir src --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward'", + "build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir src --extensions '.ts' --out-file-extension '.cjs' --root-mode 'upward'", "build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress", "lint": "eslint ./", "lint:fix": "eslint ./ --fix", - "clean": "rimraf ./es ./cjs ./dist ./types", + "clean": "rimraf --glob 'src/**/*.mjs' 'src/**/*.cjs' 'test/**/*.mjs' ./dist ./types", "typescript:check-types": "tsc --noEmit", "typescript:declaration": "tsc -p declaration.tsconfig.json && rollup -c config/rollup/types.dist.js", - "test": "cross-env NODE_ENV=test BABEL_ENV=cjs mocha", + "test": "npm run build:es && cross-env BABEL_ENV=es babel test --out-dir test --extensions '.ts' --out-file-extension '.mjs' --root-mode 'upward' && cross-env NODE_ENV=test mocha", "prepack": "copyfiles -u 3 ../../LICENSES/* LICENSES && copyfiles -u 2 ../../NOTICE .", "postpack": "rimraf NOTICE LICENSES" }, @@ -46,9 +46,9 @@ "ramda-adjunct": "^5.0.0" }, "files": [ - "cjs/", + "src/**/*.mjs", + "src/**/*.cjs", "dist/", - "es/", "types/dist.d.ts", "LICENSES", "NOTICE", diff --git a/packages/apidom-parser-adapter-workflows-json-1/test/.eslintrc b/packages/apidom-parser-adapter-workflows-json-1/test/.eslintrc index 85759a803c..c47eea4f48 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/test/.eslintrc +++ b/packages/apidom-parser-adapter-workflows-json-1/test/.eslintrc @@ -24,15 +24,32 @@ "mocha/no-top-level-hooks": 2, "mocha/no-identical-title": 2, "mocha/no-nested-tests": 2, - "mocha/no-exclusive-tests": 2 - }, - "overrides": [{ - "files": ["mocha-bootstrap.cjs"], - "parserOptions": { - "sourceType": "script" - }, - "rules": { - "@typescript-eslint/no-var-requires": 0 - } - }] + "mocha/no-exclusive-tests": 2, + "no-underscore-dangle": 0, + "import/no-relative-packages": 0, + "@typescript-eslint/naming-convention": [ + "error", + { + "selector": "variable", + "format": ["camelCase", "PascalCase", "UPPER_CASE"], + "leadingUnderscore": "forbid" + }, + { + "selector": "variable", + "format": null, + "filter": { + "regex": "^__dirname$", + "match": true + } + }, + { + "selector": "variable", + "format": null, + "filter": { + "regex": "^__filename$", + "match": true + } + } + ] + } } diff --git a/packages/apidom-parser-adapter-workflows-json-1/test/__snapshots__/adapter.ts.snap b/packages/apidom-parser-adapter-workflows-json-1/test/__snapshots__/adapter.mjs.snap similarity index 100% rename from packages/apidom-parser-adapter-workflows-json-1/test/__snapshots__/adapter.ts.snap rename to packages/apidom-parser-adapter-workflows-json-1/test/__snapshots__/adapter.mjs.snap diff --git a/packages/apidom-parser-adapter-workflows-json-1/test/adapter.ts b/packages/apidom-parser-adapter-workflows-json-1/test/adapter.ts index 33c2b07cc9..d85226d270 100644 --- a/packages/apidom-parser-adapter-workflows-json-1/test/adapter.ts +++ b/packages/apidom-parser-adapter-workflows-json-1/test/adapter.ts @@ -1,11 +1,13 @@ import fs from 'node:fs'; import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { assert, expect } from 'chai'; import { isParseResultElement, sexprs } from '@swagger-api/apidom-core'; import { isWorkflowsSpecification1Element } from '@swagger-api/apidom-ns-workflows-1'; import * as adapter from '../src/adapter'; +const __dirname = path.dirname(fileURLToPath(import.meta.url)); const jsonSpec = fs .readFileSync(path.join(__dirname, 'fixtures', 'sample-workflow.json')) .toString(); diff --git a/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.cjs b/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.cjs deleted file mode 100644 index bc8ce3c8fc..0000000000 --- a/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.cjs +++ /dev/null @@ -1,15 +0,0 @@ -/* eslint-disable */ -require('@babel/register')({ extensions: ['.js', '.ts'], rootMode: 'upward' }); - -/** - * Configure snapshot testing. - */ -const chai = require('chai'); -const { jestSnapshotPlugin, addSerializer } = require('mocha-chai-jest-snapshot'); - -const jestApiDOMSerializer = require('../../../scripts/jest-serializer-apidom.cjs'); -const jestStringSerializer = require('../../../scripts/jest-serializer-string.cjs'); - -chai.use(jestSnapshotPlugin()); -addSerializer(jestApiDOMSerializer); -addSerializer(jestStringSerializer); diff --git a/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.ts b/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.ts new file mode 100644 index 0000000000..4f8d8adf2e --- /dev/null +++ b/packages/apidom-parser-adapter-workflows-json-1/test/mocha-bootstrap.ts @@ -0,0 +1,11 @@ +import * as chai from 'chai'; +import { jestSnapshotPlugin, addSerializer } from 'mocha-chai-jest-snapshot'; + +// @ts-ignore +import * as jestApiDOMSerializer from '../../../scripts/jest-serializer-apidom'; +// @ts-ignore +import * as jestStringSerializer from '../../../scripts/jest-serializer-string'; + +chai.use(jestSnapshotPlugin()); +addSerializer(jestApiDOMSerializer); +addSerializer(jestStringSerializer);