Jest, показывающий, что `Object.defineProperty вызвано не для объекта` - PullRequest
0 голосов
/ 11 февраля 2019

Я пробовал шутить в первый раз, и как только я запустил npm test, я получил эту ошибку, говоря: TypeError: Object.defineProperty called on non-object at Function.defineProperty (<anonymous>)

q.js - /src/q.js

function linterFunction(doc) {
const metas = doc.querySelectorAll("meta[charset]");
const val = [];
for (const meta of metas) {
   val.push(
   meta
    .getAttribute("charset")
    .trim()
    .toLowerCase()
   );
 }
 const utfExists = val.includes("utf-8");

 if (utfExists && metas.length === 1) {
   return [];
 }
 return {
   occurrences: metas.length,
 };
}

export const rule = linterFunction;

q.spec.js - ФАЙЛ ТЕСТА - /tests/q.spec.js

import { rule } from '../src/q.js';

test("testing doc", () => {
   const doc = document.implementation.createHTMLDocument("test doc");
   doc.head.innerHTML = `
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width">
   `;

   const results = rule(doc);
   expect(results.length).toBe(0);
});

сс ошибки

package.json

"jest": {
  "testRegex": "(/tests/.*|(\\.|/)(test|spec))\\.jsx?$",
  "testURL": "http://localhost/"
},

.babelrc

{
  "presets": [
  [
    "@babel/preset-env",
    {
      "targets": "last 1 Firefox version, last 1 Chrome version, last 1 
      Safari version, last 1 Edge version",
      "modules": "amd"
    }
  ]
 ],
 "plugins": ["transform-amd-to-commonjs"]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...