92 lines
2.1 KiB
JavaScript
92 lines
2.1 KiB
JavaScript
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")
|
|
})
|
|
|
|
})
|