UNPKG

@gorgo/medusa-feed-yandex

Version:

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

119 lines (101 loc) 3.38 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("Feed by ID API Routes", () => { const headers: Record<string, string> = {} let container: ReturnType<typeof getContainer> let createdFeedId: string beforeAll(async () => { container = getContainer() const auth = container.resolve("auth") const userService = container.resolve("user") const user = await userService.createUsers({ email: "admin@medusa.test", }) const authIdentity = await auth.createAuthIdentities({ provider_identities: [ { provider: "emailpass", entity_id: "admin@medusa.test", 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}` const service = container.resolve<FeedModuleService>(FEED_MODULE) const created = await service.createFeeds({ title: "Original Feed", file_name: "original.xml", is_active: true, schedule: 10, }) createdFeedId = created.id }) it("GET /admin/feeds/:id — get feed", async () => { const res = await api.get(`/admin/feeds/${createdFeedId}`, { headers }) expect(res.status).toBe(200) expect(res.data.feed).toMatchObject({ id: createdFeedId, title: "Original Feed", file_name: "original.xml", }) }) it("PATCH /admin/feeds/:id — update feed", async () => { const service = container.resolve<FeedModuleService>(FEED_MODULE) const created = await service.createFeeds({ title: "To Be Updated", file_name: "update-me.xml", is_active: false, schedule: 30, }) const res = await api.patch( `/admin/feeds/${created.id}`, { id: created.id, title: "Updated Title", schedule: 60, }, { headers } ) expect(res.status).toBe(200) expect(res.data.feed).toMatchObject({ id: created.id, title: "Updated Title", schedule: 60, }) }) it("DELETE /admin/feeds/:id — delete feed", async () => { const res = await api.delete(`/admin/feeds/${createdFeedId}`, { headers, }) expect(res.status).toBe(200) expect(res.data).toEqual({ id: createdFeedId, object: "feed", deleted: true, }) const service = container.resolve<FeedModuleService>(FEED_MODULE) const found = await service.listFeeds({ id: [createdFeedId] }) expect(found).toHaveLength(0) }) }) }, }) jest.setTimeout(60 * 1000)