Make scss tests work on Windows too. (#37713)

Also, add missing `'use strict'` statements; these aren't real modules.
This commit is contained in:
XhmikosR 2022-12-25 18:09:26 +02:00 committed by GitHub
parent fa37da4d44
commit d891159950
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 12 deletions

View File

@ -1,16 +1,17 @@
/* eslint-env node */
/* eslint-disable camelcase */
'use strict'
const path = require('node:path')
module.exports = {
spec_dir: 'scss' /* eslint-disable-line camelcase */,
// Make Mocha look for `.test.scss` files
spec_files: ['**/*.{test,spec}.scss'] /* eslint-disable-line camelcase */,
spec_dir: 'scss',
// Make Jasmine look for `.test.scss` files
spec_files: ['**/*.{test,spec}.scss'],
// Compile them into JS scripts running `sass-true`
requires: [path.join(__dirname, 'sass-true/register')],
// Ensure we use `require` so that the require.extensions works
// as `import` completely bypasses it
jsLoader: 'require'

View File

@ -1,10 +1,15 @@
/* eslint-env node */
const runnerPath = require('node:path').join(__dirname, 'runner')
'use strict'
const path = require('node:path')
const runnerPath = path.join(__dirname, 'runner').replace(/\\/g, '/')
require.extensions['.scss'] = (module, filename) => {
const normalizedFilename = filename.replace(/\\/g, '/')
require.extensions['.scss'] = function (module, filename) {
return module._compile(`
const runner = require('${runnerPath}')
runner('${filename}',{describe, it})
runner('${normalizedFilename}', { describe, it })
`, filename)
}

View File

@ -1,12 +1,14 @@
/* eslint-env node */
'use strict'
const { runSass } = require('sass-true')
const fs = require('node:fs')
const path = require('node:path')
module.exports = function (filename, { describe, it }) {
const data = fs.readFileSync(filename, { encoding: 'utf8' })
const TRUE_SETUP = '$true-terminal-output: false; @import \'true\';'
module.exports = (filename, { describe, it }) => {
const data = fs.readFileSync(filename, 'utf8')
const TRUE_SETUP = '$true-terminal-output: false; @import "true";'
runSass({
data: TRUE_SETUP + data,