Implement milestone 2 route navigation
This commit is contained in:
@@ -87,6 +87,61 @@ const tests = [
|
||||
assert.equal(response.headers.get("location"), "/play");
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "authenticated route navigation and refresh use real URLs",
|
||||
run: async () => withDriver({}, async (driver) => {
|
||||
const username = uniqueName("routes");
|
||||
const { sessionCookie } = await registerAndLoginApi(username, "Route Navigation");
|
||||
|
||||
const campaign = await postJson("/api/campaigns", {
|
||||
name: "Route Navigation",
|
||||
rulesetId: "d6"
|
||||
}, { cookie: sessionCookie });
|
||||
|
||||
await postJson("/api/characters", {
|
||||
name: "Navigator",
|
||||
campaignId: campaign.id
|
||||
}, { cookie: sessionCookie });
|
||||
|
||||
await seedAuthenticatedBrowser(driver, sessionCookie);
|
||||
await driver.get(absoluteUrl("/campaigns"));
|
||||
await waitForUrl(driver, "/campaigns");
|
||||
await waitForSelector(driver, "#campaign-select");
|
||||
assert.equal(await hasSelector(driver, "#skill-filter-input"), false);
|
||||
|
||||
await driver.navigate().refresh();
|
||||
await waitForUrl(driver, "/campaigns");
|
||||
await waitForSelector(driver, "#campaign-select");
|
||||
|
||||
await clickSelector(driver, ".menu-toggle");
|
||||
await clickText(driver, ".menu-item", "Play");
|
||||
await waitForUrl(driver, "/play");
|
||||
await waitForSelector(driver, "#skill-filter-input");
|
||||
|
||||
await driver.navigate().refresh();
|
||||
await waitForUrl(driver, "/play");
|
||||
await waitForSelector(driver, "#skill-filter-input");
|
||||
|
||||
await clickSelector(driver, ".menu-toggle");
|
||||
await clickText(driver, ".menu-item", "Campaign Management");
|
||||
await waitForUrl(driver, "/campaigns");
|
||||
await waitForSelector(driver, "#campaign-select");
|
||||
})
|
||||
},
|
||||
{
|
||||
name: "non-admin users are redirected away from admin route",
|
||||
run: async () => withDriver({}, async (driver) => {
|
||||
const username = uniqueName("admin-redirect");
|
||||
const { sessionCookie } = await registerAndLoginApi(username, "Admin Redirect");
|
||||
|
||||
await seedAuthenticatedBrowser(driver, sessionCookie);
|
||||
await driver.get(absoluteUrl("/admin"));
|
||||
|
||||
await waitForUrl(driver, "/play");
|
||||
await waitForText(driver, "Campaign Log");
|
||||
assert.equal(await hasSelector(driver, ".management-list"), false);
|
||||
})
|
||||
},
|
||||
{
|
||||
name: "successful login transitions to play workspace",
|
||||
run: async () => withDriver({}, async (driver) => {
|
||||
|
||||
Reference in New Issue
Block a user