@commercial-klaus/vitest-sfcc (英语)
Cartridge-aware SFCC运行时间和依赖性为Vitest取笑.
要点
- 决定:
dw/*, (中文(简体) ),*/, (中文(简体) ),~/、弹匣别名、相干模块和module.superModule - 从配置、环境、,
jsconfig,或site.xml - 通过中央架构任务过滤测试墨盒路径
- 提供可打字、可检查的SFCC Globals和有重点的运行时间模块和利用
- 装入有效的自定义 API 操作
api.json和美洲组织元数据 - 从项目元数据装入有效的钩子, 并按键引用已知的 Salesforce 钩子
- 替换模块依赖性,不用
proxyquire - 通过运行时间 API 和类型
@commerce-klaus/vitest-sfcc/runtime
何时使用此软件包
当弹匣代码必须在Vitest运行时使用此包. 它包括SFCC模块 分辨率, 普通JS 转换, 平台模块倒置, 依赖 嘲弄, 和测试绳子.
使用
@commerce-klaus/vite-plugin-sfcc-modules
仅当基于 Vite 的其他工具不需要墨盒意识模块解析时
测试运行时间。 您不需要同时安装或配置此插件
vitest-sfcc。 。 。 .
安装
pnpm add -D @commerce-klaus/vitest-sfcc vitest
npm install -D @commerce-klaus/vitest-sfcc vitest
yarn add -D @commerce-klaus/vitest-sfcc vitest
vp install -D @commerce-klaus/vitest-sfcc vitest
使用量
import sfccVitest from "@commerce-klaus/vitest-sfcc"
import { defineConfig } from "vite-plus"
export default defineConfig({
plugins: [
sfccVitest({
basePath: "./cartridges",
cartridgePath: ["app_custom", "app_storefront_base"],
}),
],
})
在动态导入受抚养人之前, 登记受抚养人的替换 :
import { getSfccRuntime } from "@commerce-klaus/vitest-sfcc"
getSfccRuntime().mock("*/cartridge/scripts/provider", providerMock)
const subject = await import("../cartridge/scripts/subject.js")
轻量级子路径也提供仅运行时间的API和类型:
import { resetSfccRuntime, type SfccModule } from "@commerce-klaus/vitest-sfcc/runtime"
装入由自定义 API 元数据和墨盒优先级选择的执行 :
import { loadSfccCustomApi } from "@commerce-klaus/vitest-sfcc"
const api = await loadSfccCustomApi("products", "getProduct")
const result = await api.invoke({
pathParameters: { productId: "sample-product" },
})
装入并引用由 hooks.json 和弹匣优先位置 :
import { loadSfccHook } from "@commerce-klaus/vitest-sfcc"
const hook = await loadSfccHook("app.payment.authorize")
const result = hook.call("authorize", "payment-1")
消费者项目只需要安装 @commerce-klaus/vitest-sfcc; 其编号
独立运行时间仍然是内部依赖.
文档
见 完整的配置和测试参考。 。 。 .
许可证
麻省理工学院