小编Dim*_*are的帖子

用Sinon,Mocha,Enzyme和React嘲弄窗口

我正在尝试使用上面列出的四个库来模拟我正在使用的组件的窗口对象.

我知道可以使用JSDom完成,但客户端反对使用它.基于我的研究,简单地做sinon.stub(窗口,'位置')应该工作但是当我运行我的测试时,我仍然在我的组件中未定义Window.

目前,在render return {window.location.host}中调用该组件

任何想法,我做错了让sinon剔除那一件.一旦我删除了那一块,那么我就可以专注于测试那个与窗口无关的组件的其他部分.

我的测试方法:

import React from 'react';

import { shallow } from 'enzyme';
import chai from 'chai';
chai.should();
import sinon from 'sinon';

import BillingStatementRow from '../BillingStatementRow';

describe('Test <BillingStatementRow /> Component', function() {

    context('Function Testing', function() {

        it('Test - onFieldChange - Make sure it handles NaN', function() {

            var e = {target: {value: NaN}};

            var window = { location : { host : "..." } };

            var mockedOnChange = sinon.spy();

            const wrapper = shallow (
                <BillingStatementRow slds={''} …
Run Code Online (Sandbox Code Playgroud)

unit-testing mocha.js sinon reactjs

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

手动验证 Firebase 身份验证令牌

我正在尝试使用 cloudflare 工作人员来执行经过身份验证的操作。

我使用 firebase 进行身份验证,并可以访问通过的访问令牌,但由于 firebase-admin 使用 nodejs 模块,它无法在平台上工作,因此我只能手动验证令牌。

我一直在尝试使用 Crypto API 进行身份验证,并最终让它导入公钥签署令牌以检查其是否有效,但我一直收到 FALSE。我正在努力弄清楚为什么它总是返回 false 的有效性。

我导入的加密密钥以“秘密”类型输入,我希望它是“公开”的。

任何想法或帮助都将是巨大的。在过去的几天里我一直用头撞桌子试图解决这个问题

这是我到目前为止所拥有的:

function _utf8ToUint8Array(str) {
    return Base64URL.parse(btoa(unescape(encodeURIComponent(str))))
}

class Base64URL {
    static parse(s) {
        return new Uint8Array(Array.prototype.map.call(atob(s.replace(/-/g, '+').replace(/_/g, '/').replace(/\s/g, '')), c => c.charCodeAt(0)))
    }
    static stringify(a) {
        return btoa(String.fromCharCode.apply(0, a)).replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_')
    }
}


export async function verify(userToken: string) {
    let jwt = decodeJWT(userToken)
    var jwKey = await fetchPublicKey(jwt.header.kid);
    let publicKey = await importPublicKey(jwKey);
    var isValid = await verifyPublicKey(publicKey, userToken);
    console.log('isValid', …
Run Code Online (Sandbox Code Playgroud)

javascript jwt firebase firebase-authentication cloudflare-workers

7
推荐指数
2
解决办法
1771
查看次数

Excel VBA设置变量以选择特定工作表中的一系列单元格

我一直在尝试运行一个遍历C列的脚本,并修剪出单元格中文本左侧或右侧的任何空格.当我运行它时,我得到一个关于set rr的错误(ss,uu,vv以及当我尝试运行它时).

这是调试器发现错误"运行时错误'1004'的地方:应用程序定义的错误或对象定义的错误.

Set rr = Worksheets("EOD").Range(Cells(2, 3), Cells(100, 3))
Run Code Online (Sandbox Code Playgroud)

我还包括下面的完整代码,以防万一可能提供更好的见解.我曾经使用过JS和PHP,但VBA让我感到困惑.

提前感谢您提供的任何帮助.

中号

Sub Workbook_Open()
Dim r As Range
Dim s As Range
Dim t As Range
Dim u As Range
Dim v As Range
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim d As Integer
Dim e As Integer
Dim rr As Range
Dim ss As Range
Dim tt As Range
Dim uu As Range
Dim vv As Range
Set rr = Worksheets("EOD").Range(Cells(2, 3), …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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