From 9ce117dd9f51139ac9a1502759ee2a65716cc758 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Sun, 22 Jan 2023 17:54:53 +0000 Subject: [PATCH] chore: skip stealth test in github actions --- .github/workflows/test.yml | 1 + test/utils/puppeteer.js | 48 ++++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 577eb29859..8595b26735 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -49,6 +49,7 @@ jobs: run: npm run jest:coverage env: REDIS_URL: redis://localhost:${{ job.services.redis.ports[6379] }}/ + GH_ACTIONS: 1 - name: Upload coverage to Codecov if: ${{ matrix.node-version == '18' }} uses: codecov/codecov-action@v3 diff --git a/test/utils/puppeteer.js b/test/utils/puppeteer.js index 928036ad31..932daf7dab 100644 --- a/test/utils/puppeteer.js +++ b/test/utils/puppeteer.js @@ -42,30 +42,32 @@ describe('puppeteer', () => { browser = null; }, 45000); - it('puppeteer without stealth', async () => { - puppeteer = require('../../lib/utils/puppeteer'); - browser = await puppeteer({ stealth: false }); - const page = await browser.newPage(); - await page.goto('https://bot.sannysoft.com', { waitUntil: 'networkidle0' }); - // page rendering is not instant, wait for expected elements to appear - const [webDriverTest, chromeTest] = await Promise.all(['webdriver', 'chrome'].map((t) => page.waitForSelector(`td#${t}-result.result.failed`).then((hd) => hd.evaluate((e) => e.textContent)))); - // the website return empty string from time to time for no reason - // since we don't really care whether puppeteer without stealth passes the bot test, just let it go - expect(['present (failed)', '']).toContain(webDriverTest); - expect(['missing (failed)', '']).toContain(chromeTest); - }, 15000); + if (!process.env.GH_ACTIONS) { + it('puppeteer without stealth', async () => { + puppeteer = require('../../lib/utils/puppeteer'); + browser = await puppeteer({ stealth: false }); + const page = await browser.newPage(); + await page.goto('https://bot.sannysoft.com', { waitUntil: 'networkidle0' }); + // page rendering is not instant, wait for expected elements to appear + const [webDriverTest, chromeTest] = await Promise.all(['webdriver', 'chrome'].map((t) => page.waitForSelector(`td#${t}-result.result.failed`).then((hd) => hd.evaluate((e) => e.textContent)))); + // the website return empty string from time to time for no reason + // since we don't really care whether puppeteer without stealth passes the bot test, just let it go + expect(['present (failed)', '']).toContain(webDriverTest); + expect(['missing (failed)', '']).toContain(chromeTest); + }, 15000); - it('puppeteer with stealth', async () => { - puppeteer = require('../../lib/utils/puppeteer'); - browser = await puppeteer({ stealth: true }); - const page = await browser.newPage(); - await page.goto('https://bot.sannysoft.com', { waitUntil: 'networkidle0' }); - // page rendering is not instant, wait for expected elements to appear - const [webDriverTest, chromeTest] = await Promise.all(['webdriver', 'chrome'].map((t) => page.waitForSelector(`td#${t}-result.result.passed`).then((hd) => hd.evaluate((e) => e.textContent)))); - // these are something we really care about - expect(webDriverTest).toBe('missing (passed)'); - expect(chromeTest).toBe('present (passed)'); - }, 15000); + it('puppeteer with stealth', async () => { + puppeteer = require('../../lib/utils/puppeteer'); + browser = await puppeteer({ stealth: true }); + const page = await browser.newPage(); + await page.goto('https://bot.sannysoft.com', { waitUntil: 'networkidle0' }); + // page rendering is not instant, wait for expected elements to appear + const [webDriverTest, chromeTest] = await Promise.all(['webdriver', 'chrome'].map((t) => page.waitForSelector(`td#${t}-result.result.passed`).then((hd) => hd.evaluate((e) => e.textContent)))); + // these are something we really care about + expect(webDriverTest).toBe('missing (passed)'); + expect(chromeTest).toBe('present (passed)'); + }, 15000); + } it('puppeteer accept http proxy uri w/ auth', async () => { process.env.PROXY_URI = 'http://user:pass@rsshub.proxy:2333';