This commit is contained in:
Kyle McNally 2023-08-18 17:13:45 -04:00
parent aeee592507
commit 6fc18b6935
5 changed files with 124 additions and 124 deletions

View File

@ -2,9 +2,9 @@ name: AWS Lambda CI
on:
push:
branches: [ master ]
branches: [master]
pull_request:
branches: [ master ]
branches: [master]
jobs:
build:
@ -52,7 +52,7 @@ jobs:
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
python-version: "3.x"
- name: Setup AWS SAM CLI
uses: aws-actions/setup-sam@v2

View File

@ -10,7 +10,6 @@ jobs:
name: Build and release
runs-on: ubuntu-latest
steps:
# Install jq so I can edit package.json from the command line
- run: sudo apt-get install jq -y

View File

@ -1,7 +1,7 @@
const { ok } = require('assert');
const { createHash } = require('crypto');
const { ok } = require("assert");
const { createHash } = require("crypto");
const puppeteer = require("puppeteer-core");
const chromium = require('@sparticuz/chromium');
const chromium = require("@sparticuz/chromium");
exports.handler = async (event, context) => {
let browser = null;
@ -15,9 +15,9 @@ exports.handler = async (event, context) => {
ignoreHTTPSErrors: true,
});
const contexts = [
browser.defaultBrowserContext(),
];
console.log("Chromium verion", await browser.version());
const contexts = [browser.defaultBrowserContext()];
while (contexts.length < event.length) {
contexts.push(await browser.createIncognitoBrowserContext());
@ -27,23 +27,31 @@ exports.handler = async (event, context) => {
const job = event.shift();
const page = await context.newPage();
if (job.hasOwnProperty('url') === true) {
await page.goto(job.url, { waitUntil: ['domcontentloaded', 'load'] });
if (job.hasOwnProperty("url") === true) {
await page.goto(job.url, { waitUntil: ["domcontentloaded", "load"] });
if (job.hasOwnProperty('expected') === true) {
if (job.expected.hasOwnProperty('title') === true) {
ok(await page.title() === job.expected.title, `Title assertion failed.`);
if (job.hasOwnProperty("expected") === true) {
if (job.expected.hasOwnProperty("title") === true) {
ok(
(await page.title()) === job.expected.title,
`Title assertion failed.`
);
}
if (job.expected.hasOwnProperty('screenshot') === true) {
if (job.expected.hasOwnProperty('remove') === true) {
if (job.expected.hasOwnProperty("screenshot") === true) {
if (job.expected.hasOwnProperty("remove") === true) {
await page.evaluate((selector) => {
document.getElementById(selector).remove();
}, job.expected.remove);
}
const screenshot = await page.screenshot();
// console.log(screenshot.toString('base64'), createHash('sha1').update(screenshot.toString('base64')).digest('hex'));
ok(createHash('sha1').update(screenshot.toString('base64')).digest('hex') === job.expected.screenshot, `Screenshot assertion failed.`);
ok(
createHash("sha1")
.update(screenshot.toString("base64"))
.digest("hex") === job.expected.screenshot,
`Screenshot assertion failed.`
);
}
}
}

View File

@ -1,17 +1,10 @@
{
"extends": [
"@tsconfig/node16/tsconfig",
"@tsconfig/strictest"
],
"extends": ["@tsconfig/node16/tsconfig", "@tsconfig/strictest"],
"compilerOptions": {
"declaration": true,
"lib": [
"dom"
],
"lib": ["dom", "ES2021"],
"module": "commonjs",
"outDir": "build",
"outDir": "build"
},
"include": [
"source"
]
"include": ["source"]
}