aboutsummaryrefslogtreecommitdiff
path: root/tests/http/test_preview.py
blob: 2bdf265fe5615beef6e8c96edf114d710ea5f002 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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"]