fs = require("fs") path = require("path") express = require("express") Fixtures = require("../support/helpers/fixtures") e2e = require("../support/helpers/e2e") replacerRe = /(

)\w+(<\/h1>)/ e2ePath = Fixtures.projectPath("e2e") requestsForCache = 0 onServer = (app) -> app.post "/write/:text", (req, res) -> file = path.join(e2ePath, "index.html") fs.readFile file, "utf8", (err, str) -> ## replace the word between

...

str = str.replace(replacerRe, "$1#{req.params.text}$2") fs.writeFile file, str, (err) -> res.sendStatus(200) app.get "/cached", (req, res) -> requestsForCache += 1 res .set("cache-control", "public, max-age=3600") .send("this response will be disk cached") describe "e2e cache", -> e2e.setup({ servers: { port: 1515 onServer: onServer static: { ## force caching to happen maxAge: 3600000 } } }) it "passes", -> e2e.exec(@, { spec: "cache_spec.coffee" snapshot: true }) it "clears cache when browser is spawned", -> e2e.exec(@, { spec: "cache_clearing_spec.coffee" }) .then => ## only 1 request should have gone out expect(requestsForCache).to.eq(1) e2e.exec(@, { spec: "cache_clearing_spec.coffee" }) .then -> ## and after the cache is cleaned before ## opening the browser, it'll make a new request expect(requestsForCache).to.eq(2)