影响录像机
这个包记录到磁带文件的效果HTTP请求。测试可以重放 之后会有同样的请求。
安装
pnpm add -D @useairfoil/effect-vcr @effect/platform-node@^4 effect@^4
使用
使用 VcrHttpClient.layer(...) 围绕实时效果HTTP客户端和
FileSystemCassetteStore.layer(...) 磁带文件。
import { NodeServices } from "@effect/platform-node";
import { FileSystemCassetteStore, VcrHttpClient } from "@useairfoil/effect-vcr";
import { Layer } from "effect";
import { FetchHttpClient } from "effect/http";
const store = FileSystemCassetteStore.layer().pipe(Layer.provide(NodeServices.layer));
const VcrLive = VcrHttpClient.layer({
vcrName: "provider-api",
mode: "auto",
}).pipe(Layer.provide(Layer.mergeAll(FetchHttpClient.layer, NodeServices.layer, store)));
自动模式回放录音带,如果它是存在的。如果丢失,它会记录1。
在CI上,丢失的卡带失效。 ACK_DISABLE_VCR=* 跳过VCR,使用直播
HTTP。
请求匹配方法、URL及其查询参数、标题和正文。
授权头在匹配时被忽略,并在卡带之前被删除
是写的。添加其他秘密 redact。中列出的查询参数
redact.requestQueryParams 从卡带中取出并被忽略
匹配,当参数来自本地配置时也会有所帮助。
请求可以同时记录。磁带写入是轮流的,所以没有输入 是输了。
配置
| 变量 | 要求 | 默认的 |
|---|---|---|
CI | 否 | false |
ACK_DISABLE_VCR | 否 | 空 |