rollup-plugin-typescript2/jest.config.js
Anton Gilgur 3ef3289fc1
fix: add compatibility checks w/ semver (#424)
* hotfix: `this.load` was added in Rollup `2.60.0`; don't run on older versions

- this is my bad, I didn't realize `this.load` came out _much_ later than `this.resolve`
  - c.f. https://github.com/rollup/rollup/blob/master/CHANGELOG.md#2600

- since we're backward-compatible w/ Rollup `1.26.3`, add in a version check for the type-only fix
  - the type-only fix will error out in Rollup versions less than `2.60.0`, so instead of erroring out, just skip this functionality

- TODO: should move back to using `semver` that was removed in 08d2f5bcad7cb9a9a0974f3707a27d29dd89da7c

* deps: add back `semver` and use for version checking

- reverts the `semver` removal in 08d2f5bcad7cb9a9a0974f3707a27d29dd89da7c
  - add back the TS version range check

- add a Rollup version range check, fixing an old issue
- check `this.load` Rollup version with `semver` instead of string comparison

- add `semver` to `external`s list
  - also remove `resolve` as it's no longer used as of 74f6761ff63863cdb3e92ca1f33640fe6f4fc7db
  - and re-organize the list so that Node built-ins are in one section while deps are in another
    - makes it clearer what we're marking as external

* dx: add a nice warning when `this.load` is not supported

- so it doesn't just silently skip the type-only fix on Rollup versions <2.60.0

* fix(test): add globals for strings that are replaced during build

- `TS_VERSION_RANGE`, `ROLLUP_VERSION_RANGE`, `RPT2_VERSION` were previously only defined during builds, so would cause tests to fail
  - add these vars as (namespaced) globals in the Jest config so that they can be used in tests too
  - if they don't exist on `global` (or if `global` doesn't exist), then use the built strings instead
  - see in-line comments for more details

- also reorder `re` placement to match the usage order in the code
- and fix lint issues (`no-string-literal`)

Co-authored-by: Eugene Zolenko <zolenkoe@gmail.com>
2022-09-20 13:15:10 -06:00

29 lines
848 B
JavaScript

const pkg = require("./package.json");
/** @type {import("ts-jest").InitialOptionsTsJest} */
const config = {
// ts-jest settings
preset: "ts-jest",
globals: {
"ts-jest": {
tsconfig: "./tsconfig.test.json",
},
// other globals (unrelated to ts-jest) -- these are namespaced so they don't conflict with anything else
"rpt2__TS_VERSION_RANGE": pkg.peerDependencies.typescript,
"rpt2__ROLLUP_VERSION_RANGE": pkg.peerDependencies.rollup,
"rpt2__RPT2_VERSION": pkg.version,
},
// jest settings
injectGlobals: false, // use @jest/globals instead
restoreMocks: true,
// only use *.spec.ts files in __tests__, no auto-generated files
testMatch: ["**/__tests__/**/*.spec.ts?(x)"],
coveragePathIgnorePatterns: [
"node_modules", // default
"<rootDir>/__tests__/" // ignore any test helper files
],
};
module.exports = config;