const fs = require('fs'); const fsp = require('fs').promises; const { rmdir } = require('./../utils') const { getFiles } = require('../../src/file-utils'); const dumpdir = `${__dirname}/dump` beforeEach(async () => { if(fs.existsSync(dumpdir)) { rmdir(dumpdir) } fs.mkdirSync(dumpdir) }) jest.disableAutomock() jest.unmock('got') describe("webmention downloading of author pictures", () => { const { getPictures } = require('./../../src/webmention/pictures') test("getPictures does not write a file if error occurs", async () => { await getPictures([{ author: { picture: '/unknownshit.lolz' } }], { endpoint: 'https://brainbaking.com/', directory: dumpdir, extension: "png" }) const output = await getFiles(dumpdir) expect(output.length).toBe(0) }) test("getPictures adds extension if not yet present", async () => { await getPictures([{ author: { picture: '/img/avatar.jpg' } }], { endpoint: 'https://brainbaking.com/', directory: dumpdir, extension: "png" }) const output = fs.readFileSync(`${dumpdir}/img/avatar.jpg.png`).toString() expect(output).not.toBe(null) }) test("getPictures does not override existing picture if flag is set", async () => { fs.mkdirSync(`${dumpdir}/img`) fs.writeFileSync(`${dumpdir}/img/avatar.jpg`, "dummy", "utf8") await getPictures([{ author: { picture: '/img/avatar.jpg' } }], { endpoint: 'https://brainbaking.com/', directory: dumpdir }) const output = fs.readFileSync(`${dumpdir}/img/avatar.jpg`).toString() expect(output).toBe("dummy") }) test("getPictures downloads author picture if present and overrides", async () => { fs.mkdirSync(`${dumpdir}/img`) fs.writeFileSync(`${dumpdir}/img/avatar.jpg`, "dummy", "utf8") await getPictures([{ author: { picture: '/img/avatar.jpg' } }, { author: { } }], { endpoint: 'https://brainbaking.com/', directory: dumpdir }) const output = await getFiles(dumpdir) expect(output.length).toBe(1) const firstFile = fs.readFileSync(`${dumpdir}/img/avatar.jpg`).toString() expect(output).not.toBe("dummy") }) })