saleor-app-sdk-REDIS_APL/src/handlers/next/create-app-register-handler.test.ts
Lukasz Ostrowski a839314f08
Add central SaleorApp instance (#71)
* Add SaleorApp class

* Add middleware and tests

* Move APL validation to APL

* Fix test

* Add prepush hook

* Add better error for missing vercel envs

* Add test
2022-10-11 09:40:08 +02:00

49 lines
1.4 KiB
TypeScript

import { createMocks } from "node-mocks-http";
import { describe, expect, it, vi } from "vitest";
import { APL } from "../../APL";
import { createAppRegisterHandler } from "./create-app-register-handler";
describe("create-app-register-handler", () => {
it("Sets auth data for correct request", async () => {
const mockApl: APL = {
get: vi.fn(),
set: vi.fn(),
delete: vi.fn(),
getAll: vi.fn(),
isReady: vi.fn().mockImplementation(async () => ({
ready: true,
})),
};
const { res, req } = createMocks({
/**
* Use body, instead of params, otherwise - for some reason - param is not accessible in mock request
* Maybe this is a bug https://github.com/howardabrams/node-mocks-http/blob/master/lib/mockRequest.js
*/
body: {
auth_token: "mock-auth-token",
},
headers: {
host: "some-saleor-host.cloud",
"x-forwarded-proto": "https",
"saleor-domain": "https://mock-saleor-domain.saleor.cloud",
},
method: "POST",
});
const handler = createAppRegisterHandler({
apl: mockApl,
});
await handler(req, res);
/**
* It fails -> params.auth_token isn't present
*/
expect(mockApl.set).toHaveBeenCalledWith({
domain: "https://mock-saleor-domain.saleor.cloud",
token: "mock-auth-token",
});
});
});