UNPKG

@gorgo/medusa-feed-yandex

Version:

A Medusa plugin that generates a product feed in YML (Yandex Market Language) format

101 lines (85 loc) 2.83 kB
import { medusaIntegrationTestRunner } from "@medusajs/test-utils" import jwt from "jsonwebtoken" import { FEED_MODULE } from "../../src/modules/feed" import FeedModuleService from "../../src/modules/feed/service" medusaIntegrationTestRunner({ testSuite: ({ api, getContainer }) => { describe("Feeds API Routes", () => { const headers: Record<string, string> = {} let container: ReturnType<typeof getContainer> beforeEach(async () => { container = getContainer() const auth = container.resolve("auth") const userService = container.resolve("user") const user = await userService.createUsers({ email: "admin@test.com", }) const authIdentity = await auth.createAuthIdentities({ provider_identities: [ { provider: "emailpass", entity_id: "admin@test.com", provider_metadata: { password: "supersecret", }, }, ], app_metadata: { user_id: user.id, }, }) const token = jwt.sign( { actor_id: user.id, actor_type: "user", auth_identity_id: authIdentity.id, }, "supersecret", { expiresIn: "1d" } ) headers["authorization"] = `Bearer ${token}` }) describe("GET /admin/feeds", () => { it("get feeds", async () => { const res = await api.get("/admin/feeds", { headers }) expect(res.status).toBe(200) expect(Array.isArray(res.data.feeds)).toBe(true) }) }) describe("POST /admin/feeds", () => { it("create feed", async () => { const payload = { feeds: [ { title: "Feed POST API", file_name: "feed-post-api.xml", is_active: true, schedule: 30, }, ], } const res = await api.post("/admin/feeds", payload, { headers }) expect(res.status).toBe(200) const feed = res.data.feed expect(feed).toEqual({ id: expect.any(String), title: "Feed POST API", file_name: "feed-post-api.xml", file_path: null, is_active: true, schedule: 30, last_export_at: null, settings: null, deleted_at: null, created_at: expect.any(String), updated_at: expect.any(String), }) const service = container.resolve<FeedModuleService>(FEED_MODULE) const found = await service.listFeeds({ id: [feed.id] }) expect(found).toHaveLength(1) }) }) }) }, }) jest.setTimeout(60 * 1000)