Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions .github/workflows/pr-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Nullstack Tests

on:
pull_request:
branches: [ master, next ]

jobs:
build:

runs-on: ubuntu-latest
container: lironavon/docker-puppeteer-container:14.16.0
env:
CI: true

strategy:
matrix:
node-version: [12.20.0, 14.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/

steps:
- uses: actions/checkout@v2
# cache the dependencies from any node_modules directory
- name: Cache dependencies
uses: actions/cache@v2
with:
path: |
**/node_modules
**/package-lock.json
key: node_modules-${{ matrix.node-version }}-${{ hashFiles('**/package.json') }}

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}

- name: Install and link main deps
run: |
npm install
npm link

- name: Install deps at tests folder
working-directory: ./tests
run: |
npm link nullstack
npm install

- name: Run tests
working-directory: ./tests
run: npm test
28 changes: 28 additions & 0 deletions tests/jest-puppeteer.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// get environment variable
const CI = !!process.env.CI;

const baseOptions = {
server: {
command: 'npm run start',
port: 6969,
launchTimeout: 25000
},
browserContext: 'incognito'
}

const ciPipelineOptions = {
launch: {
executablePath: '/usr/bin/google-chrome-stable',
headless: true,
args: [
'--ignore-certificate-errors',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-accelerated-2d-canvas',
'--disable-gpu'
]
},
...baseOptions
}

module.exports = CI ? ciPipelineOptions : baseOptions;
7 changes: 7 additions & 0 deletions tests/jest.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const CI = !!process.env.CI;

module.exports = {
preset: "jest-puppeteer",
forceExit: CI,
testTimeout: CI ? 5000 : 20000
}
3 changes: 2 additions & 1 deletion tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
"jest": "^26.6.3",
"nullstack": "*",
"puppeteer": "^5.5.0",
"jest-puppeteer": "^6.0.3",
"webpack-cli": "^3.3.12"
},
"scripts": {
"start": "npx nullstack start --input=./tests --port=6969",
"build": "npx nullstack build --input=./tests --mode=ssr",
"test": "npm run build && jest --testTimeout=20000",
"test": "npm run build && jest",
"script": "node src/scripts/run.js"
},
"dependencies": {
Expand Down
14 changes: 0 additions & 14 deletions tests/src/Application.test.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
});

describe('Application', () => {

test('the application is running', async () => {
Expand All @@ -32,8 +22,4 @@ describe('Application', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
12 changes: 0 additions & 12 deletions tests/src/ChildComponent.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/child-component');
});

Expand Down Expand Up @@ -43,9 +36,4 @@ describe('ChildComponent', () => {
expect(element).toBeTruthy();
});


});

afterAll(async () => {
browser.close();
});
11 changes: 0 additions & 11 deletions tests/src/Context.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context');
});

Expand Down Expand Up @@ -36,8 +29,4 @@ describe('Context', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
11 changes: 0 additions & 11 deletions tests/src/ContextData.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context-data');
});

Expand All @@ -28,8 +21,4 @@ describe('ContextData', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
11 changes: 0 additions & 11 deletions tests/src/ContextEnvironment.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context-environment');
});

Expand Down Expand Up @@ -48,8 +41,4 @@ describe('ContextEnvironment', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
12 changes: 0 additions & 12 deletions tests/src/ContextPage.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context-page');
});

Expand Down Expand Up @@ -95,9 +88,4 @@ describe('ContextPage', () => {
expect(element).toBeTruthy();
});


});

afterAll(async () => {
browser.close();
});
28 changes: 2 additions & 26 deletions tests/src/ContextProject.test.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,4 @@
const puppeteer = require('puppeteer');

let browser;

beforeAll(async () => {
browser = await puppeteer.launch();
});

describe('ContextProject', () => {

let page;

beforeAll(async () => {
page = await browser.newPage();
});

test('cors can be enabled', async () => {
const response = await page.goto('http://localhost:6969/context-project');
Expand All @@ -23,11 +9,8 @@ describe('ContextProject', () => {
});

describe('ContextProject', () => {

let page;

beforeAll(async () => {
page = await browser.newPage();
await page.goto('http://localhost:6969/context-project');
await page.waitForSelector('[data-project]');
});
Expand Down Expand Up @@ -147,16 +130,13 @@ describe('ContextProject', () => {
expect(text).toMatch('');
});


});

describe('robots.txt', () => {

let page;

let text;

beforeAll(async () => {
page = await browser.newPage();
await page.goto('http://localhost:6969/robots.txt');
text = await page.evaluate(() => document.body.innerHTML);
});
Expand All @@ -181,8 +161,4 @@ describe('robots.txt', () => {
expect(index).toBeGreaterThan(-1);
});

});

afterAll(async () => {
browser.close();
});
11 changes: 0 additions & 11 deletions tests/src/ContextSecrets.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context-secrets');
});

Expand All @@ -31,8 +24,4 @@ describe('ContextSecrets', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
11 changes: 0 additions & 11 deletions tests/src/ContextSettings.test.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
const puppeteer = require('puppeteer');

let browser;
let page;

beforeAll(async () => {
browser = await puppeteer.launch();
page = await browser.newPage();
await page.goto('http://localhost:6969/context-settings');
});

Expand All @@ -31,8 +24,4 @@ describe('ContextSettings', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
21 changes: 0 additions & 21 deletions tests/src/ContextWorker.test.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,6 @@
const puppeteer = require('puppeteer');

let browser;

beforeAll(async () => {
browser = await puppeteer.launch();
});

describe('ContextWorker', () => {

let page;

beforeAll(async () => {
page = await browser.newPage();
await page.goto('http://localhost:6969/context-worker');
});

Expand Down Expand Up @@ -84,10 +73,7 @@ describe('ContextWorker', () => {

describe('ContextWorker', () => {

let page;

beforeAll(async () => {
page = await browser.newPage();
await page.goto('http://localhost:6969/context-worker');
});

Expand All @@ -103,10 +89,7 @@ describe('ContextWorker', () => {

describe('ContextWorker', () => {

let page;

beforeAll(async () => {
page = await browser.newPage();
await page.goto('http://localhost:6969/context-worker');
});

Expand Down Expand Up @@ -135,8 +118,4 @@ describe('ContextWorker', () => {
expect(element).toBeTruthy();
});

});

afterAll(async () => {
browser.close();
});
Loading