javascript - জাস্ট সিকিউরিটি এরির: লোকালস্টোরেজ অস্বচ্ছ উত্সগুলির জন্য উপলভ্য নয়
node.js npm (6)
আপনি অবশ্যই কোন পরিবেশ (
--env
) ব্যবহার করছেন তা অবশ্যই নির্দিষ্ট করতে হবে।
আপনি যখন
package.json
jest
কমান্ডটি চালাবেন তখন আপনার পরিবেশ (
jsdom
বা
node
) নির্দিষ্ট করা উচিত।
উদাহরণ স্বরূপ:
"scripts": {
"jest": "jest --env=node --colors --coverage test",
"test": "npm run jest"
},
এটি আপনার জন্য কাজ করা উচিত!
যখন আমি
npm run test
কমান্ডটি দিয়ে আমার প্রকল্পটি চালাতে চাই, আমি নীচের ত্রুটিটি পেয়েছি।
এর কারণ কী?
FAIL
● Test suite failed to run
SecurityError: localStorage is not available for opaque origins at Window.get localStorage [as localStorage] (node_modules/jsdom/lib/jsdom/browser/Window.js:257:15)
at Array.forEach (<anonymous>)
আপনি যদি জসডম ব্যবহার করছেন তবে নিশ্চিত হয়ে নিন যে আপনি ইউআরএল অন্তর্ভুক্ত করেছেন।
জাসদম সংগ্রহস্থলের সহজ বিকল্পগুলি চেকআউট করুন। https://github.com/jsdom/jsdom#simple-options
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`...`, { url: "https://example.org/" });
এটি নির্বোধ শোনায় তবে আমার জন্য সমস্যাটি হয়েছিল কারণ আমি ভুলভাবে
npm update
সহ এলোমেলো প্যাকেজ ইনস্টল করেছি।
আমি
npm install
এবং তারপরে
npm update
চালিয়ে যাচ্ছিলাম তবে আমার কেবল
npm install
উচিত ছিল।
আমি
node_modules
ডিরেক্টরি মুছে ফেলা এবং আবার
npm install
চালিয়ে সমস্যার সমাধান করেছি।
ঠাট্টার সাথে
enzyme
সংহত করার সময় এটি আমার কাছে পপ আপ হয়।
গিথুব ইস্যু আলোচনাটি
উপরে উল্লিখিত যেমন নাম যুক্ত করে একই পরামর্শ দেয়
"testURL": "http://localhost/"
ঠাট্টা কনফিগারেশনে। তবে এটি জেনে রাখা ভাল যে এটি এনজাইম দ্বারা ট্রিগারও হয়েছে। আমার জন্য এটি ছিল প্রতিক্রিয়া v15 এবং v15 অ্যাডাপ্টার।
যদি আপনি কোনও
http://localhost
উপসর্গ দিয়ে আপনার অ্যাপ্লিকেশন অ্যাক্সেস করে থাকেন তবে আপনাকে আপনার জাস্ট কনফিগারেশনটি (আপনার
jest.config.js
) আপডেট করতে হবে,
"jest": {
"verbose": true,
"testURL": "http://localhost/"
}
আপনার যদি ইতিমধ্যে কোনও ঠাট্টা কনফিগারেশন না থাকে তবে কেবল আপনার
package.json
কনফিগারেশনটি অন্তর্ভুক্ত করুন।
উদাহরণ স্বরূপ:
{
"name": "...",
"description": "...",
...
"jest": {
"verbose": true,
"testURL": "http://localhost/"
}
}
বা
jest.config.js
:
module.exports = {
verbose: true,
testURL: "http://localhost/",
...
}
বা যদি আপনার
projects
কনফিগার করা থাকে:
module.exports = {
verbose: true,
projects: [{
runner: 'jest-runner',
testURL: "http://localhost/",
// ...
}]
}
testURL: "http://localhost"
যুক্ত করার
testURL: "http://localhost"
উত্তরের পরামর্শ
testURL: "http://localhost"
আমার জেস্ট কনফিগারেশনে
testURL: "http://localhost"
আমার পক্ষে কার্যকর হয়নি।
তবে,
জাসডম গিটহাব আলোচনা থেকে এই পরামর্শ
, জাসডম অবজেক্ট তৈরি করার সময় একটি ইউআরএল পাস করার
বিষয়ে
of
const url = 'http://localhost';
const dom = new JSDOM('<!DOCTYPE html><html><body></body></html>', { url });