mirror of https://github.com/01-edu/public.git
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.
123 lines
3.1 KiB
123 lines
3.1 KiB
import { gossips } from './subjects/gossip-grid/data.js' |
|
|
|
export const tests = [] |
|
|
|
tests.push(async ({ page, eq }) => { |
|
// test that the grid is properly generated |
|
|
|
const content = await page.$$eval('.gossip', nodes => nodes.map(n => n.textContent)) |
|
|
|
eq(content, ['Share gossip!', ...gossips]) |
|
}) |
|
|
|
|
|
tests.push(async ({ page, eq }) => { |
|
// test that you can add a gossip |
|
|
|
const rand = Math.random().toString(36).slice(2) |
|
await page.type('textarea', `coucou ${rand}`) |
|
await page.click('.gossip button') |
|
const content = await page.$eval('div.gossip', n => n.textContent) |
|
|
|
eq(content, `coucou ${rand}`) |
|
}) |
|
|
|
|
|
const getStyle = (nodes, key) => nodes.map(n => n.style[key]) |
|
tests.push(async ({ page, eq }) => { |
|
// test that you can change the width to the min |
|
|
|
const min = await page.$eval('#width', n => { |
|
n.value = n.min |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.min) |
|
}) |
|
|
|
eq(min, 200) |
|
|
|
const values = await page.$$eval('div.gossip', getStyle, 'width') |
|
|
|
eq(Array(gossips.length + 1).fill(`${min}px`), values) |
|
}) |
|
|
|
tests.push(async ({ page, eq }) => { |
|
// test that you can change the width to the max |
|
|
|
const max = await page.$eval('#width', n => { |
|
n.value = n.max |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.max) |
|
}) |
|
|
|
eq(max, 800) |
|
|
|
const values = await page.$$eval('div.gossip', getStyle, 'width') |
|
|
|
eq(Array(gossips.length + 1).fill(`${max}px`), values) |
|
}) |
|
|
|
tests.push(async ({ page, eq }) => { |
|
// test that you can change the font-size to the min |
|
|
|
const min = await page.$eval('#fontSize', n => { |
|
n.value = n.min |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.min) |
|
}) |
|
|
|
eq(min, 20) |
|
|
|
const values = await page.$$eval('div.gossip', getStyle, 'fontSize') |
|
|
|
eq(Array(gossips.length + 1).fill(`${min}px`), values) |
|
}) |
|
|
|
tests.push(async ({ page, eq }) => { |
|
// test that you can change the font-size to the max |
|
|
|
const max = await page.$eval('#fontSize', n => { |
|
n.value = n.max |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.max) |
|
}) |
|
|
|
eq(max, 40) |
|
|
|
const values = await page.$$eval('div.gossip', getStyle, 'fontSize') |
|
|
|
eq(Array(gossips.length + 1).fill(`${max}px`), values) |
|
}) |
|
|
|
const getBackground = (nodes, key) => nodes.map(n => n.style.background || n.style.backgroundColor) |
|
tests.push(async ({ page, eq, rgbToHsl }) => { |
|
// test that you can change the background to the darkest |
|
|
|
const min = await page.$eval('#background', n => { |
|
n.value = n.min |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.min) |
|
}) |
|
|
|
eq(min, 20) |
|
|
|
const values = await page.$$eval('div.gossip', getBackground) |
|
const lightness = values.map(rgbToHsl).map(([h,s,l]) => l) |
|
eq(Array(gossips.length + 1).fill(min), lightness) |
|
}) |
|
|
|
tests.push(async ({ page, eq, rgbToHsl }) => { |
|
// test that you can change the background to the darkest |
|
|
|
const max = await page.$eval('#background', n => { |
|
n.value = n.max |
|
n.dispatchEvent(new Event('input')) |
|
return Number(n.max) |
|
}) |
|
|
|
eq(max, 75) |
|
|
|
const values = await page.$$eval('div.gossip', getBackground) |
|
const lightness = values.map(rgbToHsl).map(([h,s,l]) => Math.round(l)) |
|
|
|
eq(Array(gossips.length + 1).fill(max), lightness) |
|
})
|
|
|