mirror of
https://github.com/tailwindlabs/tailwindcss.git
synced 2025-12-08 21:36:08 +00:00
* add integration test tools * setup jest in the integrations folder * add `test:integrations` script The default `npm test` script will ignore all the tests in the `integrations` folder. * add integration tests with `webpack 5` * add integration tests with `postcss-cli` * add `npm run install:integrations` script This script will run `npm install` in every integration, and in the integrations folder itself (to setup Jest for example). * add `toIncludeCss` custom matcher * increate Jest timeout for integration tests * add integration tests with `vite` * add integration tests with `webpack 4` * add isomorphic fetch * add the ability to wait for specific stdout/stderr output * write vite tests, assert using API calls We will wait for the correct stdout/stderr output, once we know that we can request the fresh css, we will fetch it and make assertions accordingly. Port is currently hardcoded, maybe we should use a packaage to ensure that we use a free port. * add integration tests with `rollup` * add integration tests with `parcel` * run all integration tests in band * add .gitignore in integrations folder
28 lines
801 B
JavaScript
28 lines
801 B
JavaScript
let fs = require('fs/promises')
|
|
let { spawn } = require('child_process')
|
|
let path = require('path')
|
|
let root = process.cwd()
|
|
|
|
function npmInstall(cwd) {
|
|
return new Promise((resolve) => {
|
|
let childProcess = spawn('npm', ['install'], { cwd })
|
|
childProcess.on('exit', resolve)
|
|
})
|
|
}
|
|
|
|
async function install() {
|
|
let base = path.resolve(root, 'integrations')
|
|
let ignoreFolders = ['node_modules']
|
|
let integrations = (await fs.readdir(base, { withFileTypes: true }))
|
|
.filter((integration) => integration.isDirectory())
|
|
.filter((integration) => !ignoreFolders.includes(integration.name))
|
|
.map((folder) => path.resolve(base, folder.name))
|
|
.concat([base])
|
|
.map((integration) => npmInstall(integration))
|
|
|
|
await Promise.all(integrations)
|
|
console.log('Done!')
|
|
}
|
|
|
|
install()
|