问题标签 [pact-node]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Pact.js - willRespondWith 任意有序数组
我的消费者服务向提供者服务询问所有用户的列表,但提供者以任意有序列表回答(这很好)。消费者端的协议执行看起来不错,但是在提供者站点上执行它时,它说:Expected "user1" but got "user3" at $.items[0].userName
例如。
这是交互的片段:
有没有办法忽略退货的顺序?
此外,我的摩卡咖啡测试似乎对比较没有影响。我也尝试订购两个阵列,但没有任何帮助。(交互和摩卡测试)如何连接?
提前谢谢了!
node.js - Can I make Chai's expect.to.not.throw synchronous?
I have a snippet of code that I'm testing in Chai and Pact. It looks something like this:
This works but it's a lot of extra work to go through to make a wrapper function to ensure that I wait on Pact's verify complete's before continuing on with the test. Pact has some internal state that will clear when it's done. If I just call this:
expect(provider.verify()).to.not.throw()
then it will conflict with other tests.
This code seems to work fine for me but it's very messy. Its there a simpler way to accomplish this?
javascript - Pact JS (Jest) Pact 停止失败;尝试调用服务 10 次没有结果
我在消费者端的 Pact JS 实现中遇到错误。当我尝试运行测试时,出现以下错误:
如果有任何帮助,请在下面附上我的代码片段:
在测试本身:
任何帮助将不胜感激。我是新手,不知道如何解决这个问题。
使用 pact: 4.2.1 和 @pact-foundation/pact-node: 6.0.0
pact - Pact-node 依赖关系很大,有什么办法可以减小大小?
我们已经使用 pact 为我们的 Angular JS 前端和 java 后端实现了合同测试。
我注意到 node_modules/@pact-foundation 目录非常大(pact-node v 4.3.2)
JS UI 始终只是消费者,但依赖项似乎需要以下内容
有没有办法引入一组较小的依赖项?
编辑 - 似乎原因如下
pact-node 依赖于 pact-mock-service 并且捆绑的依赖项包括所有操作系统的模拟服务。
编辑 2 -
将我的依赖项更改为以下
并添加一个分辨率(我使用的是纱线而不是 npm)
将依赖项的总大小降低到
干杯谢恩
javascript - pact-js 发布纯文本正文显示“模拟服务中发生错误:JSON::ParserError - 757: 'Tag_PACT_1519821131303' 处的意外令牌
- 操作系统:例如 Mac OSX 10.12.6
- 消费者 Pact 库:例如 Pact JS v5.5.0
- 节点版本:8.2.1
有一个 post restful api,post body 是纯文本,当我使用下面的代码生成消费者 pact 文件时,它显示 JSON ParserError,似乎 pact-js 只支持 json body,即使我将 content-type 设置为 text /plain 在标题中
有什么方法可以在 post 方法中发送文本/纯文本?
node.js - pact-js 消息消费者合同示例不起作用
我想开始使用 Pact 为我们的异步消息流架构启用消费者驱动的合同。在阅读了 pact-foundation 的大部分文档和入门指南后,我尝试按照https://github.com/pact-foundation/pact-js/tree/master/examples/messages中的示例进行操作。现在我只需要创建 Pact 的消费者端。
当我跑
我在级别收到以下错误debug
:
然后我将其追踪到
.verify(synchronousBodyHandler(dogApiHandler))
inside的调用message-consumer.spec.ts
,最终导致了class Spawn
存在于spawn.ts
pact-foundation 的 pact-node 存储库中的那个。
为了正确调用 Pact Creation 逻辑的示例,我必须更改 package.json 文件:
至
我的想法不多了,因为我的 javascript/node.js/typescript 技能相当有限。将不胜感激任何帮助。谢谢和干杯,pypapo
node.js - 在协议提供者测试中指定自签名证书
我目前正在使用以下提供商选项测试我的协议合同
当我给出基本网址时,https
我收到以下错误:
如果我更改 urlhttp:
让它进行重定向(我得到重定向状态代码 308)。
https url 是一个自签名的 url,自签名证书存在于我们所有的服务器中。我从任何浏览器或 curl 或通过 express.js 访问 url 都没有问题。
但是,如果我直接在提供程序选项中提供 url,我会收到错误消息。我浏览了协议文档,但找不到任何其他论据。
非常感谢您为克服此问题提供的任何帮助。
谢谢。
更新:问题是在 docker 容器内运行协议。来自容器的请求被内部代理阻止。一旦代理被绕过,它就起作用了。
pact - PACT 节点 - ConsumerVersionSelector - 参与者和版本未兑现
- 操作系统:Mac OSX 10.15.7_
- 契约:9.15.5
- 契约节点版本:10.12.2
- 节点版本:12.13.0
我确定我做错了什么,但我不知道如何让它工作。
我有 2 个客户 (ClientA
和ClientB
) 与 provider 有合同(每个都标记为“master”)发布到协议代理(版本 2.79.1)DemoService
。
契约经纪人矩阵(简化):
消费者 | 版本 | 标签 | 提供者 | 版本 | 已验证 | |
---|---|---|---|---|---|---|
客户A | 1.0.1-2726fe4 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户A | 1.0.0-12ab763 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户B | 1.0.1-6fe3cb5 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 | |
客户B | 1.0.0-ec71b62 | 掌握 | - | 演示服务 | 1.0.0-a6b2678 |
我尝试设置一个来验证与提供商ConsumerVersionSelector
签订的合同的特定版本。ClientA
它看起来像version
并pacticipant
没有兑现。两个消费者的合同都是从契约经纪人那里提取的。日志有以下语句:
谢谢你的评论。
pact - Pact 中的 ProviderStates
据我所知,Pact 规范的第 3 版表示交互支持多个 providerState,并允许您定义参数。我在 pact-web 或 pact-js 存储库中不支持此功能。我正在使用 pact-web 并将其集成到现有的 Angular 项目中。我最终通过创建一个新的交互类来添加 providerStates,该类扩展了库中定义的类。通过应用程序进行调试,我看到它已序列化并发布到模拟服务。
但是,我没有看到 providerStates 属性保存到协议文件中。我只看到providerState。我正在尝试通过 pact-node 项目进行调试,但找不到文件实际写入磁盘的位置。有什么建议吗?