_G.spy = spy local mock_env = require("spec.env_mock") local rng = require("spec.fuzzgen") describe("smr biography",function() setup(mock_env.setup) teardown(mock_env.teardown) it("should allow users to set their biography",function() local claim_post = require("endpoints.claim_post") local login_post = require("endpoints.login_post") local index_get = require("endpoints.index_get") local bio_get = require("endpoints.bio_get") local bio_post = require("endpoints.bio_post") local db = require("db") local config = require("config") config.domain = "test.host" configure() local username = rng.subdomain() local claim_req = { method = "POST", host = "test.host", path = "/_claim", args = { user = username } } claim_post(claim_req) local login_req = { method = "POST", host = "test.host", path = "/_login", args = { user = username }, file = { pass = claim_req.response } } login_post(login_req) local cookie = login_req.response_headers["set-cookie"] local sessionid = cookie:match("session=([^;]+)") local home_req_get = { method = "GET", host = username .. ".test.host", path = "/", cookies = { session = sessionid } } index_get(home_req_get) local edit_bio_button = '= 300 and code <= 400, "Should receive a redirect after posting, got:" .. tostring(code)) assert(paste_req_post.response_headers, "Should have received some response headers") assert(paste_req_post.response_headers.Location, "Should have received a location in response headers") local redirect = paste_req_post.response_headers.Location:match("(/[^/]*)$") local read_req_get = { method = "GET", host = username .. ".test.host", path = redirect, cookies = { session = sessionid }, args = {} } read_get(read_req_get) local response = read_req_get.response assert( response:find([[post title]]), "Failed to find post title in response." ) assert( response:find('By ' .. username .. ''), "Failed to find the author name after a paste." ) assert( response:find([[post text]]), "Failed to find post text in response." ) ]=] end) end)