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 });




jestjs