75 lines
2.0 KiB
Lua
75 lines
2.0 KiB
Lua
|
|
_G.spy = spy
|
|
local mock_env = require("spec.env_mock")
|
|
|
|
describe("smr cacheing",function()
|
|
setup(mock_env.setup)
|
|
teardown(mock_env.teardown)
|
|
it("caches a page if the page is requested twice #working",function()
|
|
local read_get = require("endpoints.read_get")
|
|
local cache = require("cache")
|
|
renderspy = spy.on(cache,"render")
|
|
configure()
|
|
local req = {
|
|
method = "GET",
|
|
path = "/a",
|
|
args = {},
|
|
host = "test.host"
|
|
}
|
|
assert.spy(renderspy).called(0)
|
|
read_get(req)
|
|
assert.spy(renderspy).called(1)
|
|
read_get(req)
|
|
assert.spy(renderspy).called(2)
|
|
for row in cache.cache:rows("SELECT COUNT(*) FROM cache") do
|
|
assert(row[1] == 1, string.format(
|
|
"Exepected only one cache entry after" ..
|
|
"calling test.host/a 2 times " ..
|
|
", but got %d rows.", row[1]
|
|
))
|
|
end
|
|
end)
|
|
it("does not cache the page if the user is logged in", function()
|
|
local read_get = require("endpoints.read_get")
|
|
local cache = require("cache")
|
|
renderspy = spy.on(cache,"render")
|
|
configure()
|
|
pending("TODO: complete")
|
|
end)
|
|
it("caches one page for domain/id and author.domain/id",function()
|
|
local read_get = require("endpoints.read_get")
|
|
local cache = require("cache")
|
|
configure()
|
|
local req_m = {__index = {
|
|
method = "GET",
|
|
path = "/a",
|
|
args = {}
|
|
}}
|
|
local base_host = {host="test.host"}
|
|
local base_req = setmetatable({host="test.host"},req_m)
|
|
read_get(base_req)
|
|
local user_req = setmetatable({host="admin.test.host"},req_m)
|
|
read_get(user_req)
|
|
for row in cache.cache:rows("SELECT COUNT(*) FROM cache") do
|
|
assert(row[1] == 1, string.format(
|
|
"Exepected only one cache entry for" ..
|
|
"'test.host/a' and 'admin.test.host/a'" ..
|
|
", but got %d rows.", row[1]
|
|
))
|
|
end
|
|
end)
|
|
it("detours configure",function()
|
|
local s = {}
|
|
local c = false
|
|
local oldconfigure = configure
|
|
--local index_get = require("endpoints.index_get")
|
|
--configure(s)
|
|
--assert(c)
|
|
end)
|
|
describe("author home page",function()
|
|
it("lists all stories by that author",function()
|
|
pending("TODO")
|
|
end)
|
|
end)
|
|
end)
|