@gorgo/medusa-feed-yandex
Version:
A Medusa plugin that generates a product feed in YML (Yandex Market Language) format
91 lines (74 loc) • 2.68 kB
text/typescript
import { medusaIntegrationTestRunner } from "@medusajs/test-utils"
import { createFeedsWorkflow } from "../../src/workflows/create-feeds"
import { deleteFeedsWorkflow } from "../../src/workflows/delete-feeds"
import { updateFeedsWorkflow } from "../../src/workflows/update-feeds"
import { FEED_MODULE } from "../../src/modules/feed"
import FeedModuleService from "../../src/modules/feed/service"
medusaIntegrationTestRunner({
testSuite: ({ getContainer }) => {
describe("createFeedsWorkflow", () => {
it("create feeds", async () => {
const container = getContainer()
const input = [
{
file_name: "feed1.xml",
is_active: true,
schedule: 60,
},
{
file_name: "feed2.xml",
is_active: false,
schedule: 120,
},
]
const { result } = await createFeedsWorkflow(container).run({ input })
expect(result).toHaveLength(2)
expect(result[0]).toHaveProperty("file_name", "feed1.xml")
expect(result[1]).toHaveProperty("file_name", "feed2.xml")
const service = container.resolve<FeedModuleService>(FEED_MODULE)
const feeds = await service.listFeeds({
file_name: ["feed1.xml", "feed2.xml"],
})
expect(feeds).toHaveLength(2);
})
})
describe("deleteFeedsWorkflow", () => {
it("delete feeds", async () => {
const container = getContainer()
const service = container.resolve<FeedModuleService>(FEED_MODULE)
const created = await service.createFeeds({
file_name: "todelete.xml",
is_active: true,
schedule: 30,
})
await deleteFeedsWorkflow(container).run({
input: {ids: [created.id]},
})
const found = await service.listFeeds({ id: [created.id] })
expect(found).toHaveLength(0)
})
})
describe("updateFeedsWorkflow", () => {
it("update feeds", async () => {
const container = getContainer()
const service = container.resolve<FeedModuleService>(FEED_MODULE)
const created = await service.createFeeds({
file_name: "original.xml",
is_active: true,
schedule: 30,
})
await updateFeedsWorkflow(container).run({
input: [{
id: created.id,
title: "updated feed name",
schedule: 60
}],
})
const updated = await service.retrieveFeed(created.id);
expect(updated.title).toBe("updated feed name")
expect(updated.schedule).toBe(60)
})
})
},
})
jest.setTimeout(60 * 1000);