TypeScript节点etcd3事务模拟

问题描述

我当时正在考虑模拟etcd3来运行单元测试。

它似乎不适用于事务处理-如果我也将模拟代码注释掉,它也将不起作用。

这是基于etcd3交易示例

import React,{ useState,useEffect } from "react";
import { Doughnut,Line,Pie } from "react-chartjs-3";

export default function UserDashboard() {
  const DoughData = {
    labels: ["Red","Green","Yellow"],datasets: [
      {
        data: [300,50,100],backgroundColor: ["#FF6384","#36A2EB","#FFCE56"],hoverBackgroundColor: ["#FF6384",},],};

  return (
    <div>
      <Doughnut data={DoughData} />
    </div>
  );
}

这给出了

import 'jasmine';
import { Etcd3 } from 'etcd3';
import sinon from 'sinon';

const amount = 3;

const etcd3 = new Etcd3();
// const mock = etcd3.mock({ exec: sinon.stub() } as any);
// mock.exec.resolves({ kvs: [{ key: 'foo',value: amount.toString() }] });

describe('transaction',() => {
  it('mocks',async () => {

    await Promise.all([
      etcd3.put('bank/account1').value(20),etcd3.put('bank/account2').value(20)])

    await etcd3.stm().transact(tx => {
      return Promise.all([
        tx.get('bank/account1').number(),tx.get('bank/account2').number(),])
        .then(([balance1,balance2]) => {
          if (balance1 && balance2) {
            return Promise.all([
              tx.put('bank/account1').value(balance1 - amount),tx.put('bank/account2').value(balance2 + amount),])
          }
        })
    })
  });
});

如果使用模拟,则会收到不同的错误。我要解决所有问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)