feat: sync and update with all changes from fork (#720)
* feat: sync and update with all changes from fork * refactor: extract clipboard copy logic into custom hook * fix: correct spelling of DEFAULT_REFRESH_FREQUENCY_MS in Stamps and WalletBalance providers * refactor(ui-tests): replace fixed sleeps with condition-based waits * fix: handle null values for size and granteeCount in infoGroups * fix(lint): add newline at end of file in useClipboardCopy hook * fix(ui-tests): page.goto URL * refactor: update import paths for useClipboardCopy --------- Co-authored-by: Ferenc Sárai <sarai.ferenc@gmail.com>
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
const handler = require('serve-handler')
|
||||
const http = require('http')
|
||||
const puppeteer = require('puppeteer')
|
||||
const { testFolderUpload } = require('./test-case/FolderUpload')
|
||||
const { testImageFileUpload } = require('./test-case/ImageFileUpload')
|
||||
const { testTextFileUpload } = require('./test-case/TextFileUpload')
|
||||
const { testWebsiteUpload } = require('./test-case/WebsiteUpload')
|
||||
const { testReactWebsiteUpload } = require('./test-case/ReactWebsiteUpload')
|
||||
const { testUnicodeFileUpload } = require('./test-case/UnicodeFileUpload')
|
||||
const { testUnicodeWebsiteUpload } = require('./test-case/UnicodeWebsiteUpload')
|
||||
|
||||
const VIEWPORT = { width: 1366, height: 768 }
|
||||
|
||||
const testCases = [
|
||||
testUnicodeFileUpload,
|
||||
testUnicodeWebsiteUpload,
|
||||
testTextFileUpload,
|
||||
testImageFileUpload,
|
||||
testFolderUpload,
|
||||
testWebsiteUpload,
|
||||
testReactWebsiteUpload,
|
||||
]
|
||||
|
||||
async function main() {
|
||||
const server = prepareServer()
|
||||
const { browser, page } = await preparePage()
|
||||
const beforeAll = Date.now()
|
||||
for (const testCase of testCases) {
|
||||
const before = Date.now()
|
||||
console.log('\x1b[34m…\x1b[0m', 'Running', testCase.name)
|
||||
await testCase(page)
|
||||
const delta = Date.now() - before
|
||||
console.log('\x1b[32m✔\x1b[0m', testCase.name, 'passed in', delta, 'ms')
|
||||
}
|
||||
const delta = Date.now() - beforeAll
|
||||
console.log('\x1b[32m✔✔✔\x1b[0m', 'All', testCases.length, 'tests passed in', delta, 'ms')
|
||||
await page.close()
|
||||
await browser.close()
|
||||
server.close()
|
||||
}
|
||||
|
||||
/**
|
||||
* @returns {Promise<{ browser: puppeteer.Browser, page: puppeteer.Page }>}
|
||||
*/
|
||||
async function preparePage() {
|
||||
// TODO: run in CI, headless mode
|
||||
const browser = await puppeteer.launch({
|
||||
defaultViewport: null,
|
||||
headless: false,
|
||||
args: [`--window-size=${VIEWPORT.width},${VIEWPORT.height}`],
|
||||
})
|
||||
const page = await browser.newPage()
|
||||
await page.goto(`http://localhost:${process.env.PORT ?? 8080}`, { waitUntil: 'networkidle0' })
|
||||
|
||||
return { browser, page }
|
||||
}
|
||||
|
||||
function prepareServer() {
|
||||
const serverConfig = {
|
||||
public: 'build',
|
||||
trailingSlash: false,
|
||||
rewrites: [{ source: '**', destination: '/index.html' }],
|
||||
}
|
||||
|
||||
const server = http.createServer((request, response) => {
|
||||
return handler(request, response, serverConfig)
|
||||
})
|
||||
server.listen(8080)
|
||||
|
||||
return server
|
||||
}
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user