printify-effect
Version:
Effect-ts wrapper for Printify REST API — still in early development, use at your own risk!
34 lines (29 loc) • 1.19 kB
text/typescript
import { Effect } from "effect";
import { expect, test } from "vitest";
import printify from "../src";
import { makeNewProduct, makeNewUpload, runPrintifyTest } from "./utils";
test("products.create", async () => {
const program = Effect.gen(function* () {
const newUpload = makeNewUpload();
const { id: imageId } = yield* printify.uploads.uploadImage(newUpload);
const newProduct = makeNewProduct(imageId);
const createdProduct = yield* printify.products.create(newProduct);
const createdProductDetails = yield* printify.products.getOne(
createdProduct.id
);
expect(createdProductDetails.id).toBe(createdProduct.id);
expect(createdProductDetails.title).toBe(newProduct.title);
expect(createdProductDetails.description).toBe(newProduct.description);
expect(createdProductDetails.variants.length).toBe(
newProduct.variants.length
);
expect(createdProductDetails.print_areas.length).toBe(
newProduct.print_areas.length
);
yield* printify.products.deleteOne(createdProduct.id);
});
await runPrintifyTest(program);
});
test("products.list", async () => {
await runPrintifyTest(printify.products.list());
});