res.onEnd = () => { expect(res).toRenderTemplate(Page.Sitemap); const context = res.rendered.context; expect(context).toHaveAllProperties('posts', 'categories', 'tags'); expect(res.headers).toHaveKeyValue( Header.Content.Type, addCharSet(MimeType.XML) ); done(); };
res.onEnd = () => { expect(res.httpStatus).toBe(HttpStatus.OK); expect(res.headers).toHaveKeyValue( Header.Content.Type, addCharSet(MimeType.JSON) ); expect(res.headers).toHaveKeyValue( Header.Content.Encoding, Encoding.GZip ); expect(res.content).toBeDefined(); expect(res.content.length).toBeWithin(42000, 45000); done(); };
compress.gzip(Buffer.from(geoText), (err: Error, buffer: Buffer) => { if (is.value(err)) { view.internalError(res, err); } else { res.setHeader(Header.Content.Encoding, Encoding.GZip); res.setHeader(Header.CacheControl, 'max-age=86400, public'); // seconds res.setHeader(Header.Content.Type, addCharSet(MimeType.JSON)); res.setHeader( Header.Content.Disposition, `attachment; filename=${key}` ); res.write(buffer); res.end(); } });
export function writeItemToResponse( res: Response, item: ViewItem, cache = true ) { res.setHeader(Header.Content.Encoding, Encoding.GZip); if (cache) { res.setHeader(Header.CacheControl, 'max-age=86400, public'); // seconds } else { // force no caching res.setHeader(Header.CacheControl, 'no-cache'); res.setHeader(Header.Expires, 'Tue, 01 Jan 1980 1:00:00 GMT'); res.setHeader(Header.PRAGMA, 'no-cache'); } res.setHeader(Header.eTag, item.eTag); res.setHeader(Header.Content.Type, addCharSet(item.type)); res.write(item.buffer); res.end(); }