Skip to content
Snippets Groups Projects
Unverified Commit 9965bc8f authored by Kagami Sascha Rosylight's avatar Kagami Sascha Rosylight Committed by GitHub
Browse files

Fix moduleNameMapper to not resolve `.wasm.js` to `.wasm` (#9894)

* Fix moduleNameMapper to not resolve `.wasm.js` to `.js`

Fixes #9767

Undici [tries to import `./llhttp/llhttp.wasm.js`](https://github.com/nodejs/undici/blob/e155c6db5cec9bc577d548fa7c7378013631c79c/lib/client.js#L342

) which is currently broken by the (hacky) module name mapper.

* longer timeout value

* 30s

* 50s

* 60s to be safe

* Revert "60s to be safe"

This reverts commit f3e0f5796273c0cdcbd901e8c08ae3136b9768f8.

* 2cc98226 revert?

* revert

* remove timeout

* detectOpenHandles

* Really solved?

* Revert "detectOpenHandles"

This reverts commit 29214bdff80e15998f34171bf409d454a3d10129.

* Add `coveragePathIgnorePatterns`

* Revert "Add `coveragePathIgnorePatterns`"

This reverts commit fcf8c6806b339b7c21f53137f9939d00020904aa.

* Import jsonld dynamically

* remove import

* add comment

---------

Co-authored-by: default avatarsyuilo <Syuilotan@yahoo.co.jp>
parent 317770fb
No related branches found
No related tags found
No related merge requests found
// https://github.com/facebook/jest/issues/12270#issuecomment-1194746382
const nativeModule = require('node:module');
function resolver(module, options) {
const { basedir, defaultResolver } = options;
try {
return defaultResolver(module, options);
} catch (error) {
return nativeModule.createRequire(basedir).resolve(module);
}
}
module.exports = resolver;
......@@ -83,7 +83,14 @@ module.exports = {
// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
moduleNameMapper: {
"^@/(.*?).js": "<rootDir>/src/$1.ts",
// Do not resolve .wasm.js to .wasm by the rule below
'^(.+)\\.wasm\\.js$': '$1.wasm.js',
// SWC converts @/foo/bar.js to `../../src/foo/bar.js`, and then this rule
// converts it again to `../../src/foo/bar` which then can be resolved to
// `.ts` files.
// See https://github.com/swc-project/jest/issues/64#issuecomment-1029753225
// TODO: Use `--allowImportingTsExtensions` on TypeScript 5.0 so that we can
// directly import `.ts` files without this hack.
'^(\\.{1,2}/.*)\\.js$': '$1',
},
......@@ -112,7 +119,7 @@ module.exports = {
// resetModules: false,
// A path to a custom resolver
resolver: './jest-resolver.cjs',
// resolver: './jest-resolver.cjs',
// Automatically restore mock state between every test
restoreMocks: true,
......
import * as crypto from 'node:crypto';
import { Inject, Injectable } from '@nestjs/common';
import jsonld from 'jsonld';
import { HttpRequestService } from '@/core/HttpRequestService.js';
import { bindThis } from '@/decorators.js';
import { CONTEXTS } from './misc/contexts.js';
......@@ -85,7 +84,9 @@ class LdSignature {
@bindThis
public async normalize(data: any) {
const customLoader = this.getLoader();
return await jsonld.normalize(data, {
// XXX: Importing jsonld dynamically since Jest frequently fails to import it statically
// https://github.com/misskey-dev/misskey/pull/9894#discussion_r1103753595
return (await import('jsonld')).default.normalize(data, {
documentLoader: customLoader,
});
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment