UNPKG

@applicaster/zapp-react-native-utils

Version:

Applicaster Zapp React Native utilities package

58 lines (47 loc) 1.67 kB
import { Image } from "../Image"; import nock from "nock"; import fs from "fs"; import path from "path"; const testImagePath = path.resolve(__dirname, "./image.jpg"); const testImage = fs.readFileSync(testImagePath).toString(); const base64TestImage = Buffer.from(testImage).toString("base64"); const prefixedWithBase64 = `data:image/png;base64,${base64TestImage}`; const imageUrl = "http://lorempixel/400/200"; const errorUrl = "http://error/fail"; describe("Image", () => { beforeEach(() => { nock("http://lorempixel").persist().get("/400/200").reply(200, testImage); nock("http://error") .persist() .get("/fail") .reply(404, new Error("image doesn't exist")); }); it("loads the image, and provides it when it is downloaded", (done) => { const handler = (_image) => { expect(_image).toEqual(image); expect(image.ready).toBe(true); expect(image.url).toEqual(imageUrl); expect(image.get()).toEqual(prefixedWithBase64); expect(image.getUri()).toEqual({ uri: prefixedWithBase64 }); done(); }; const errorHandler = (error) => { expect(error).toBeUndefined(); done(); }; const image = new Image(imageUrl) .on("ready", handler) .on("error", errorHandler); expect(image.ready).toBe(false); expect(image.url).toEqual(imageUrl); expect(image.get()).toBe(null); expect(image.getUri()).toBe(null); }); it("invokes the error handler if something wrong happened", (done) => { const errorHandler = (error) => { expect(error).toMatchSnapshot(); done(); }; new Image(errorUrl).on("error", errorHandler); }); });