小编Jea*_*eri的帖子

玩笑更新后无法读取未定义的属性“html”

对于使用 jest 的 Angular v12 项目,我刚刚将 jest 更新到版本 28。但是现在,我收到以下错误

\n
FAIL  src/app/components/update-input/update-input.directive.spec.ts\n\xe2\x97\x8f Test suite failed to run\n\n  TypeError: Cannot read property 'html' of undefined\n\n    at new JSDOMEnvironment (node_modules/jest-environment-jsdom/build/index.js:72:44)\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的 tsconfig.spec.json

\n
{\n  "extends": "./tsconfig.json",\n  "compilerOptions": {\n    "outDir": "./out-tsc/spec",\n    "types": [\n      "jest", \n      "node",\n      "Chrome"\n    ],\n    "esModuleInterop": true,\n    "emitDecoratorMetadata": true,\n    "allowSyntheticDefaultImports": true,\n    "moduleResolution": "Node",\n    "module": "es2020",\n    "files": ["src/test.ts", "src/polyfills.ts"],\n    "include": ["src/**/*.spec.ts", "src/**/*.d.ts"]\n  },\n}\n
Run Code Online (Sandbox Code Playgroud)\n

和 jest.config.js

\n
const { pathsToModuleNameMapper } = require("ts-jest/utils");\nconst { compilerOptions } = require("./tsconfig");\n\nmodule.exports = {\n …
Run Code Online (Sandbox Code Playgroud)

jestjs angular

26
推荐指数
2
解决办法
2万
查看次数

茉莉需要sinon.js吗?

我在网上看过人们将茉莉sinon一起使用的例子.然而,茉莉花有间谍的支持(据我所知,这是诗乃所做的).那么,问题是,使用Jasmine时Sinon仍然有用吗?如果Sinon有用的话,究竟是什么使它成为茉莉花的一个很好的补充?

干杯

javascript unit-testing jasmine sinon

23
推荐指数
3
解决办法
7894
查看次数

如何使用mocha/chai模拟窗口/文档

当我尝试单元测试getElement功能时

class BarFoo {
    getElement() {
        return document.querySelector('#barfoo');
    }
}
Run Code Online (Sandbox Code Playgroud)

摩卡什么都不知道document,所以我想你可能会这样做:

beforeEach(() => {
    global.document = {
        querySelector: () => { ... }
    }
}
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但我想知道这是否是正确的方法,并且可能有一个包可以解决这个问题,因为如果使用更多的浏览器API,我的方法会变得费力?

javascript unit-testing mocha.js node.js

22
推荐指数
2
解决办法
2万
查看次数

Playwright VSCode 给出“未找到测试”消息

我已经安装了 Playwright vscode 扩展,但是当我进入测试区域时,我收到一条“在此工作区中未找到测试”消息。但当我$> playwright test在 CLI 上运行时,它就像一个魅力。奇怪的是,前段时间它在 VSCode 中运行得很好。

在此输入图像描述

当我单击重新加载图标时,我得到

在此输入图像描述

但几秒钟后我又回到了开始的地方。当我单击蓝色按钮时,我会转到扩展列表

在此输入图像描述

我不太确定我应该在这里安装什么。而且,它在过去已经起作用了。

这是我为 Playwright 安装的扩展:

在此输入图像描述

有什么建议吗?我的 VSCode 中发生了什么?

visual-studio-code playwright playwright-test

20
推荐指数
2
解决办法
2万
查看次数

如何在docker容器中修复ctrl + c

如果我连接到docker容器

$> docker exec -it my_container zsh
Run Code Online (Sandbox Code Playgroud)

在里面我想要杀死我开始的东西,ctrl+c我注意到它需要永远完成.我已经google了一下,似乎ctrl+c与你期望的有点不同.我的问题,如何ctrl+c在容器内修复?

shell kill-process docker

19
推荐指数
6
解决办法
1万
查看次数

npm install缺少模块

在我可以运行gulp我的项目之前,我需要运行npm install.这在我的计算机上工作,因为我收到以下错误:

Error: Cannot find module 'socket.io'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    ...
Run Code Online (Sandbox Code Playgroud)

我可以解决这个问题

$> npm install socket.io
Run Code Online (Sandbox Code Playgroud)

现在,当我再次执行安装命令时,我得到了

Error: Cannot find module 'di'
    ...
Run Code Online (Sandbox Code Playgroud)

当我di再次安装并运行install命令时,我得到:

Error: Cannot find module 'log4js'
Run Code Online (Sandbox Code Playgroud)

我认为这可能会持续很长时间.有什么建议在这里发生什么以及如何解决这个问题?

node.js npm bower gulp

18
推荐指数
3
解决办法
4万
查看次数

Javascript:使用多个索引搜索indexeddb

我想从WebSql更改为Indexeddb.但是,如何进行SQL查询

SELECT * FROM customers WHERE ssn = '444-44-4444' and emal = 'bill@bill@company.com'
SELECT * FROM customers WHERE ssn = '444-44-4444' and emal = 'bill@bill@company.com' and age = 30
SELECT * FROM customers WHERE ssn = '444-44-4444' and emal = 'bill@bill@company.com' and name = 'Bill'
etc
Run Code Online (Sandbox Code Playgroud)

使用IndexedDB?例如,我在阅读indexedDb 的文档时注意到,所有示例当时只查询一个索引.所以你可以做到

var index = objectStore.index("ssn");
index.get("444-44-4444").onsuccess = function(event) {
     alert("Name is " + event.target.result.name);
};
Run Code Online (Sandbox Code Playgroud)

但我需要同时查询多个索引!

我还发现了一些关于复合索引的有趣帖子,但它们只有在查询复合索引中的所有字段时才有效.

javascript web-sql indexeddb

17
推荐指数
1
解决办法
1万
查看次数

zsh快捷方式'ctrl + A'无效

我最近从bash切换到zsh shell.更确切地说,哦-my-zsh 非常好,但是我经常使用的快捷方式; 跳到行的开头/结尾不再起作用了.从文档应该是

ctrl + A --> beginning
ctrl + E --> end
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到以下内容

$~> my-command
$~> my-command^A   # did a ctrl + A here
Run Code Online (Sandbox Code Playgroud)

虽然我看到其他人都在工作,但在我的系统中,似乎有些不同.有什么建议吗?

shell zsh keyboard-shortcuts shortcut

17
推荐指数
3
解决办法
6010
查看次数

Meteor.publish:发布取决于其他集合的集合

我有一个发布功能如下:

Meteor.publish('tasks', function (name) {
    var project = Projects.findOne({name: name});

    return Tasks.find({projectId: project._id});
});
Run Code Online (Sandbox Code Playgroud)

现在假设在某些时候对Projects进行了更改,结果是上面的内容Projects.findOne返回一个不同的项目,因此Tasks.find将返回其他任务.但是,对项目所做的更改不会重新发布任务

我已经使用了reactivePublish,但事实证明包有问题(并且没有任何单元测试).那么,是否有一种简单的方法可以在项目更改时重新发布此发布功能?

javascript meteor meteor-publications

17
推荐指数
2
解决办法
3593
查看次数

工作区仍在吊装的 nohoist

在我的 Monorepo 里面,我有一个包,我想要它的 node_modules 中的所有依赖项。

但无论我做什么,它的 node_modules 仍然是空的。

因此,出于我的问题的目的,我能够通过以下设置重现该问题

/
 package.json
 lerna.json
 node_modules
 packages/
          A/
            node_modules
            package.json
            index.ts
          B/
            node_modules
            package.json
            index.ts
Run Code Online (Sandbox Code Playgroud)

我为此创建了一个回购

主包.json

{
  "name": "A-B-test",
  "private": true,
  "workspaces": {
    "packages": ["packages/*"],
    "nohoist": [ "**/B" ]
  },
  ...
  "devDependencies": {
    "lerna": "^3.13.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

B/package.json 好像

{
  "name": "@scaljeri/B",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "dependencies": {
    "angular": "^1.7.8"
  },
  "devDependencies": {
    "browserify": "^16.2.3",
    "typescript": "^3.5.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我yarn在项目的根目录中运行时,所有依赖项都安装在根目录中node_modules

纱线版本:1.16.0 节点:12.4.0

任何建议可能是什么问题?

monorepo yarnpkg yarn-workspaces

17
推荐指数
3
解决办法
9862
查看次数