You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
bandolier-website/tests/ui/livestream.js

54 lines
1.6 KiB

import test from 'ava';
import {register_user, sleep, expect, tid, playstart, playstop} from '../../lib/testing.js';
import { Livestream } from "../../lib/models.js";
const fixture = {
"title": "ALPHA Early Access Release Party",
"description": "Come hang out and watch me survive the first release of Learn JS the Hard Way.",
"starts_on": "2022-04-15 14:00:00-04",
"is_free": 0,
"state": "pending",
"viewer_count": 206,
"episode": 1
};
test.before(async t => {
t.context = await playstart('http://127.0.0.1:5001/client/#/live/')
const count = await Livestream.count({state: "pending"});
if(count <= 0) {
for(let state of ["pending", "finished", "ready"]) {
fixture.title = `Test of a ${state} livestream.`;
fixture.state = state;
delete fixture.id;
await Livestream.insert(fixture);
}
}
});
test.after(async t => {
await playstop(t.context.browser, t.context.p);
});
test('test pending livestream works', async (t) => {
const {browser, context, p} = t.context;
const user = await register_user();
const pending = await Livestream.first({state: "pending"});
t.not(pending, undefined);
try {
await expect(t, p, tid("streams-page"));
await expect(t, p, tid(`stream-link-${pending.id}`));
await p.click(tid(`stream-link-${pending.id}`));
await expect(t, p, tid("live-page"));
// confirm that pending stream has start message
const message = await expect(t, p, tid("pending-message"));
t.regex(message, /^This live stream.*/, "Pending message not found.");
} catch (error) {
console.log(error);
t.fail(error.message);
}
});