const describe = require('mocha').describe const it = require('mocha').it const request = require('supertest') const assert = require('assert') const sharp = require('sharp') const app = require('../server') const testUID = 4125370 describe('Foxy-moxy v1', () => { describe('fox generation', () => { it('should respect widths < 400', (done) => { const width = 158 request(app) .get(`/${width}/${testUID}`) .expect('Content-Type', 'image/png') .expect(200) .end(function (err, res) { assert(!err, String(err)) sharp(res.body).metadata((err, metadata) => { assert(!err, String(err)) assert.equal(metadata.format, 'png') assert.equal(metadata.height, width) assert.equal(metadata.width, width) done() }) }) }) it('should allow max width of 400', (done) => { const width = 510 request(app) .get(`/${width}/${testUID}`) .expect('Content-Type', 'image/png') .expect(200) .end(function (err, res) { assert(!err, String(err)) sharp(res.body).metadata((err, metadata) => { assert(!err, String(err)) assert.equal(metadata.format, 'png') assert.equal(metadata.height, 400) assert.equal(metadata.width, 400) done() }) }) }) }) }) describe('Foxy-moxy v2', () => { describe('fox generation', () => { it('should give 304 when presented with correct etag', (done) = async function () { const uncachedResponse = await request(app) .get(`/2/400/${testUID}`) .expect('Content-Type', 'image/png') .expect(200) const cachedResponse = await request(app) .get(`/2/400/${testUID}`) .set('If-None-Match', uncachedResponse.headers.etag) .expect('Content-Type', 'image/png') .expect(304) done() }) it('should respect widths < 400', (done) => { const width = 158 request(app) .get(`/2/${width}/${testUID}`) .expect('Content-Type', 'image/png') .expect(200) .end(function (err, res) { assert(!err, String(err)) sharp(res.body).metadata((err, metadata) => { assert(!err, String(err)) assert.equal(metadata.format, 'png') assert.equal(metadata.height, width) assert.equal(metadata.width, width) done() }) }) }) it('should allow max width of 400', (done) => { const width = 510 request(app) .get(`/2/${width}/${testUID}`) .expect('Content-Type', 'image/png') .expect(200) .end(function (err, res) { assert(!err, String(err)) sharp(res.body).metadata((err, metadata) => { assert(!err, String(err)) assert.equal(metadata.format, 'png') assert.equal(metadata.height, 400) assert.equal(metadata.width, 400) done() }) }) }) }) })