# There are two types of "preview" - one is where we navigate direclty # to it and one is where we redirect possibly import pytest from httpx import AsyncClient from jb.models.hit import Hit class TestPreview: @pytest.mark.anyio async def test_preview_direct(self, httpxclient: AsyncClient): client = httpxclient res = await client.get("/preview/") assert res.status_code == 200 # the response is an html page assert res.headers["content-type"] == "text/html; charset=utf-8" assert res.num_bytes_downloaded == 507 assert "James Billings loves you." in res.text assert "https://cdn.jamesbillings67.com/james-has-style.css" in res.text assert "https://cdn.jamesbillings67.com/james-billings.js" in res.text @pytest.mark.anyio async def test_preview_redirect_from_work( self, httpxclient: AsyncClient, amt_hit_id, amt_assignment_id ): client = httpxclient params = { "workerId": None, "assignmentId": amt_assignment_id, "hitId": amt_hit_id, } res = await client.get("/work/", params=params) assert res.status_code == 302 assert "/preview/" in res.headers["location"]