Skip to content

Commit 0d2d6e4

Browse files
committed
fix: Fix tests for webpack 4
1 parent 0cac4f2 commit 0d2d6e4

3 files changed

Lines changed: 79 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"eslint-plugin-prettier": "3.1.3",
6565
"jest": "^26.6.3",
6666
"memfs": "^3.2.2",
67+
"memory-fs": "^0.5.0",
6768
"prettier": "^2.0.5",
6869
"react": "^17.0.1",
6970
"ts-jest": "^26.5.6",

src/__tests__/plugin.test.ts

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,36 @@
11
import webpack, { Configuration } from "webpack";
2-
import { createFsFromVolume, Volume } from "memfs";
2+
import { createFsFromVolume, IFs, Volume } from "memfs";
33
import ReactDocgenTypeScriptPlugin from "..";
44

5+
// eslint-disable-next-line
6+
const joinPath = require("memory-fs/lib/join");
7+
8+
// Hack for webpack 4. This isn't needed with 5
9+
// See more: https://github.com/streamich/memfs/issues/404.
10+
function ensureWebpackMemoryFs(fs: IFs) {
11+
// Return it back, when it has Webpack 'join' method
12+
// eslint-disable-next-line
13+
// @ts-ignore
14+
if (fs.join) {
15+
return fs;
16+
}
17+
18+
// Create FS proxy, adding `join` method to memfs, but not modifying original object
19+
const nextFs = Object.create(fs);
20+
nextFs.join = joinPath;
21+
22+
return nextFs;
23+
}
24+
525
function compile(config: Configuration): Promise<string> {
626
return new Promise((resolve, reject) => {
727
const compiler = webpack(config);
828

929
// eslint-disable-next-line
1030
// @ts-ignore: There's a type mismatch but this should work based on webpack source
11-
compiler.outputFileSystem = createFsFromVolume(new Volume());
31+
compiler.outputFileSystem = ensureWebpackMemoryFs(
32+
createFsFromVolume(new Volume())
33+
);
1234
const memfs = compiler.outputFileSystem;
1335

1436
compiler.run((error, stats) => {

yarn.lock

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,7 +2015,7 @@ core-js@2.4.1:
20152015
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
20162016
integrity sha1-TekR5mew6ukSTjQlS1OupvxhjT4=
20172017

2018-
core-util-is@1.0.2:
2018+
core-util-is@1.0.2, core-util-is@~1.0.0:
20192019
version "1.0.2"
20202020
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
20212021
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
@@ -2329,6 +2329,13 @@ envinfo@^7.7.3:
23292329
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
23302330
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
23312331

2332+
errno@^0.1.3:
2333+
version "0.1.8"
2334+
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f"
2335+
integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==
2336+
dependencies:
2337+
prr "~1.0.1"
2338+
23322339
error-ex@^1.2.0, error-ex@^1.3.1:
23332340
version "1.3.2"
23342341
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
@@ -3313,7 +3320,7 @@ inflight@^1.0.4:
33133320
once "^1.3.0"
33143321
wrappy "1"
33153322

3316-
inherits@2:
3323+
inherits@2, inherits@~2.0.3:
33173324
version "2.0.4"
33183325
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
33193326
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -3582,7 +3589,7 @@ is-wsl@^2.2.0:
35823589
dependencies:
35833590
is-docker "^2.0.0"
35843591

3585-
isarray@1.0.0, isarray@^1.0.0:
3592+
isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
35863593
version "1.0.0"
35873594
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
35883595
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
@@ -4365,6 +4372,14 @@ memfs@^3.2.2:
43654372
dependencies:
43664373
fs-monkey "1.0.3"
43674374

4375+
memory-fs@^0.5.0:
4376+
version "0.5.0"
4377+
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c"
4378+
integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==
4379+
dependencies:
4380+
errno "^0.1.3"
4381+
readable-stream "^2.0.1"
4382+
43684383
merge-stream@^2.0.0:
43694384
version "2.0.0"
43704385
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
@@ -5028,6 +5043,11 @@ pretty-ms@^7.0.0:
50285043
dependencies:
50295044
parse-ms "^2.1.0"
50305045

5046+
process-nextick-args@~2.0.0:
5047+
version "2.0.1"
5048+
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
5049+
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
5050+
50315051
progress@^2.0.0:
50325052
version "2.0.3"
50335053
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
@@ -5041,6 +5061,11 @@ prompts@^2.0.1:
50415061
kleur "^3.0.3"
50425062
sisteransi "^1.0.5"
50435063

5064+
prr@~1.0.1:
5065+
version "1.0.1"
5066+
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
5067+
integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
5068+
50445069
psl@^1.1.28:
50455070
version "1.8.0"
50465071
resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
@@ -5135,6 +5160,19 @@ read-pkg@^5.2.0:
51355160
parse-json "^5.0.0"
51365161
type-fest "^0.6.0"
51375162

5163+
readable-stream@^2.0.1:
5164+
version "2.3.7"
5165+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
5166+
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
5167+
dependencies:
5168+
core-util-is "~1.0.0"
5169+
inherits "~2.0.3"
5170+
isarray "~1.0.0"
5171+
process-nextick-args "~2.0.0"
5172+
safe-buffer "~5.1.1"
5173+
string_decoder "~1.1.1"
5174+
util-deprecate "~1.0.1"
5175+
51385176
rechoir@^0.7.0:
51395177
version "0.7.0"
51405178
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.0.tgz#32650fd52c21ab252aa5d65b19310441c7e03aca"
@@ -5353,7 +5391,7 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
53535391
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
53545392
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
53555393

5356-
safe-buffer@~5.1.1:
5394+
safe-buffer@~5.1.0, safe-buffer@~5.1.1:
53575395
version "5.1.2"
53585396
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
53595397
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -5749,6 +5787,13 @@ string.prototype.trimstart@^1.0.1:
57495787
call-bind "^1.0.0"
57505788
define-properties "^1.1.3"
57515789

5790+
string_decoder@~1.1.1:
5791+
version "1.1.1"
5792+
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
5793+
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
5794+
dependencies:
5795+
safe-buffer "~5.1.0"
5796+
57525797
strip-ansi@^5.1.0:
57535798
version "5.2.0"
57545799
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
@@ -6188,6 +6233,11 @@ user-home@^2.0.0:
61886233
dependencies:
61896234
os-homedir "^1.0.0"
61906235

6236+
util-deprecate@~1.0.1:
6237+
version "1.0.2"
6238+
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
6239+
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
6240+
61916241
uuid@^3.3.2:
61926242
version "3.4.0"
61936243
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"

0 commit comments

Comments
 (0)