--experimental-test-module-mocks is not working as expected
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- JavaScript
- Star
- 122k
- Fork
- 37.4k
- Merge trung bình
- 4 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 272
Mô tả
Version
v24.0.0-pre
Platform
Linux fedora 6.11.6-200.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 1 16:09:34 UTC 2024 x86_64 GNU/Linux
Subsystem
No response
What steps will reproduce the bug?
This issue was observed inside the nodejs source code, when tying to create a benchmark
create a file benchmark/test_runner/mock-module.js
now copy this code
"use strict";
const { test } = require("node:test");
function main() {
test(async (t) => {
console.log("benchmark");
try {
// Create a mock module
t.mock.module('axios', {
namedExports: {
get: (url) => url
}
});
} catch (e) {
console.error(e);
}
console.log("end");
});
}
main()
now run this using ./node --experimental-test-module-mocks benchmark/test_runner/mock-module.js
You will get this output
benchmark
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'axios' imported from /home/ankan/Documents/git/me/node/benchmark/test_runner/mock-module.js
at Object.getPackageJSONURL (node:internal/modules/package_json_reader:267:9)
at packageResolve (node:internal/modules/esm/resolve:768:81)
at moduleResolve (node:internal/modules/esm/resolve:854:18)
at defaultResolve (node:internal/modules/esm/resolve:984:11)
at nextResolve (node:internal/modules/esm/hooks:748:28)
at resolve (node:internal/test_runner/mock/loader:78:35)
at nextResolve (node:internal/modules/esm/hooks:748:28)
at Hooks.resolve (node:internal/modules/esm/hooks:240:30)
at handleMessage (node:internal/modules/esm/worker:199:24)
at Immediate.checkForMessages (node:internal/modules/esm/worker:141:28) {
code: 'ERR_MODULE_NOT_FOUND'
}
end
✔ <anonymous> (42.524333ms)
(node:91728) ExperimentalWarning: Module mocking is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
ℹ tests 1
ℹ suites 0
ℹ pass 1
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 48.749785
As you can we we are trying to create a mock 'axios' module but we receive the error Cannot find package 'axios', which is unexpected as we are not even importing the module. The error is occurring because of the line t.mock.module
How often does it reproduce? Is there a required condition?
dose not need any special condition
What is the expected behavior? Why is that the expected behavior?
should create a mock module called axios
What do you see instead?
their is an error, saying package 'axios' not found, which is very unexpected
Additional information
No response
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với benchmark/test_runner/mock-module.js và lệnh gọi t.mock.module, sau đó lần theo mock loader trong internal/test_runner/mock/loader.js và đường dẫn phân giải module của nó. Tái hiện hành vi bằng ./node --experimental-test-module-mocks benchmark/test_runner/mock-module.js; hoàn tất khi có thể tạo mock mà không gặp lỗi phân giải axios ngoài dự kiến.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript, node.js
- Lĩnh vực
- testing-qa
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 58/100