小编jsp*_*pru的帖子

Oclif 提示测试

我正在尝试为包含简单提示的 Oclif 挂钩编写单元测试。我想测试钩子的输出,给出对提示的“Y”或“N”响应。

import {Hook} from '@oclif/config'
import cli from 'cli-ux'

const hook: Hook<'init'> = async function () {

  const answer = await cli.prompt("Y or N?")

  if(answer === 'Y') {
    this.log('yes')
  }
  else {
    this.log('no')
  }
}

export default hook
Run Code Online (Sandbox Code Playgroud)

我正在使用此处描述的“fancy-test”和“@oclif/test”测试框架:https ://oclif.io/docs/testing

我试过存根提示和模拟标准输入,但都没有工作 - 存根函数不可用或输出是空字符串。

这是一个测试的尝试(不起作用,因为“cli.prompt 不是函数”):

import {expect, test} from '@oclif/test'
import cli from 'cli-ux'
import * as sinon from 'sinon';

describe('it should test the "configure telemetry" hook', () => {
  test
  .stub(cli, 'prompt', sinon.stub().resolves('Y'))
  .stdout()
  .hook('init')
  .do(output …
Run Code Online (Sandbox Code Playgroud)

unit-testing prompt command-line-interface node.js oclif

7
推荐指数
1
解决办法
1075
查看次数

Angular 4中的并行HTTP请求

我正在构建一个使用REST服务的简单天气应用程序,以显示用户输入的任何城市中的当前天气数据。

仪表板页面应显示用户指定的〜5个城市的当前天气。

所以我的问题是-给定一个由5个城市组成的数组,对该数组中的每个元素发出对REST服务(通过Angular服务)的调用的最佳方法是什么?

这是我最初尝试的代码摘录:

locations: string[] = ["Seattle", "Woodinville", "Krasnoyarsk", "Stockholm", "Beijing"];

...

ngOnInit() {

    this.locations.forEach(function(element) {
      this.weatherService.getWeather(element).subscribe((data) => {
        console.log(data);
      });
    });

  }
Run Code Online (Sandbox Code Playgroud)

但这会产生一个错误:编译失败。

c:/Projects/weather-app/src/app/components/dashboard/dashboard.component.ts(19,12):属性“ weatherService”在“ void”类型上不存在。

我意识到“ forEach”在这里不起作用-但是在ng 4中执行此操作的最佳实践是什么?

谢谢。

rest service http angular

5
推荐指数
1
解决办法
3048
查看次数

graphql 服务器端验证

我只想了解人们认为在使用 graphql/orm 设置的服务器上验证用户输入文件(例如 url 或电子邮件地址)的最佳实践。

我的应用程序使用 apollo server / gql 和 sequelize 作为 orm。

我见过一些人在 sequelize 中对模型进行验证,并在 graphql 解析器中使用验证库或使用自定义标量进行其他验证示例。

任何一种方式都可取?谢谢。

validation sequelize.js graphql apollo-server

5
推荐指数
1
解决办法
852
查看次数

在 NextJS 应用程序中导入 web3 时出现 Netlify 构建错误 - “错误:无法解析...中的‘电子’”

我正在构建一个使用 web3 与以太坊智能合约交互的网页。每当我将 web3 导入页面时,我都会在 Netlify 构建中遇到错误:

9:54:39 PM: ModuleNotFoundError: Module not found: Error: Can't resolve 'electron' in '/opt/build/repo/node_modules/swarm-js/node_modules/got'
9:54:39 PM: > Build error occurred
9:54:39 PM: Error: > Build failed because of webpack errors
Run Code Online (Sandbox Code Playgroud)

我可以通过将 web3 导入添加到页面来重现出现此错误与未出现此错误的情况:

import web3 from '../ethereum/web3'
Run Code Online (Sandbox Code Playgroud)

上面的代码只是从另一个文件导出实例化的 web3 实例:

import Web3 from "web3";
 
let web3;
 
if (typeof window !== "undefined" && typeof window.ethereum !== "undefined") {
  // We are in the browser and metamask is running.
  window.ethereum.request({ method: "eth_requestAccounts" });
  web3 = new Web3(window.ethereum); …
Run Code Online (Sandbox Code Playgroud)

electron ethereum netlify next.js web3js

2
推荐指数
1
解决办法
819
查看次数