Use TypeScript in tests (#5433)

pull/5472/head
Ben McCann 4 years ago committed by GitHub
parent 3970def5eb
commit 0645631b28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,15 +1,14 @@
module.exports = { module.exports = {
file: [ file: [
'test/test.js' 'test/test.ts'
],
require: [
'sucrase/register'
] ]
}; };
// add coverage options when running 'npx c8 mocha' // add coverage options when running 'npx c8 mocha'
if (process.env.NODE_V8_COVERAGE) { if (process.env.NODE_V8_COVERAGE) {
Object.assign(module.exports, { module.exports.fullTrace = true;
fullTrace: true, module.exports.require.push('source-map-support/register');
require: [
'source-map-support/register'
]
});
} }

@ -1,5 +1,6 @@
{ {
"rules": { "rules": {
"no-console": "off" "no-console": "off",
"@typescript-eslint/no-var-requires": "off"
} }
} }

@ -1,6 +1,5 @@
import * as assert from 'assert';
import * as fs from 'fs'; import * as fs from 'fs';
import { env, svelte, setupHtmlEqual, shouldUpdateExpected } from '../helpers.js'; import { assert, env, svelte, setupHtmlEqual, shouldUpdateExpected } from '../helpers';
function try_require(file) { function try_require(file) {
try { try {

@ -2,9 +2,9 @@ import * as fs from 'fs';
import * as path from 'path'; import * as path from 'path';
import * as http from 'http'; import * as http from 'http';
import { rollup } from 'rollup'; import { rollup } from 'rollup';
import * as virtual from '@rollup/plugin-virtual'; import virtual from '@rollup/plugin-virtual';
import * as puppeteer from 'puppeteer'; import puppeteer from 'puppeteer';
import { addLineNumbers, loadConfig, loadSvelte } from "../helpers.js"; import { addLineNumbers, loadConfig, loadSvelte } from "../helpers";
import { deepEqual } from 'assert'; import { deepEqual } from 'assert';
const page = ` const page = `

@ -1,9 +1,10 @@
import * as assert$1 from 'assert';
import * as jsdom from 'jsdom'; import * as jsdom from 'jsdom';
import * as assert from 'assert'; import glob from 'tiny-glob/sync';
import * as glob from 'tiny-glob/sync.js';
import * as path from 'path'; import * as path from 'path';
import * as fs from 'fs'; import * as fs from 'fs';
import * as colors from 'kleur'; import * as colors from 'kleur';
export const assert = (assert$1 as unknown) as typeof assert$1 & { htmlEqual: (actual, expected, message?) => void };
// for coverage purposes, we need to test source files, // for coverage purposes, we need to test source files,
// but for sanity purposes, we need to test dist files // but for sanity purposes, we need to test dist files
@ -63,7 +64,7 @@ global.window = window;
// add missing ecmascript globals to window // add missing ecmascript globals to window
for (const key of Object.getOwnPropertyNames(global)) { for (const key of Object.getOwnPropertyNames(global)) {
window[key] = window[key] || global[key]; if (!(key in window)) window[key] = global[key];
} }
// implement mock scroll // implement mock scroll

@ -1,15 +1,15 @@
import * as assert from 'assert';
import * as path from 'path'; import * as path from 'path';
import * as fs from 'fs'; import * as fs from 'fs';
import { import {
assert,
showOutput, showOutput,
loadConfig, loadConfig,
loadSvelte, loadSvelte,
env, env,
setupHtmlEqual, setupHtmlEqual,
shouldUpdateExpected shouldUpdateExpected
} from '../helpers.js'; } from '../helpers';
let compileOptions = null; let compileOptions = null;
@ -58,13 +58,7 @@ describe('hydration', () => {
try { try {
global.window = window; global.window = window;
let SvelteComponent; const SvelteComponent = require(`${cwd}/main.svelte`).default;
try {
SvelteComponent = require(`${cwd}/main.svelte`).default;
} catch (err) {
throw err;
}
const target = window.document.body; const target = window.document.body;
const head = window.document.head; const head = window.document.head;
@ -75,7 +69,9 @@ describe('hydration', () => {
try { try {
before_head = fs.readFileSync(`${cwd}/_before_head.html`, 'utf-8'); before_head = fs.readFileSync(`${cwd}/_before_head.html`, 'utf-8');
head.innerHTML = before_head; head.innerHTML = before_head;
} catch (err) {} } catch (err) {
// continue regardless of error
}
const snapshot = config.snapshot ? config.snapshot(target) : {}; const snapshot = config.snapshot ? config.snapshot(target) : {};

@ -2,7 +2,7 @@ import * as assert from "assert";
import * as fs from "fs"; import * as fs from "fs";
import * as path from "path"; import * as path from "path";
import * as colors from "kleur"; import * as colors from "kleur";
import { loadConfig, svelte, shouldUpdateExpected } from "../helpers.js"; import { loadConfig, svelte, shouldUpdateExpected } from "../helpers";
describe("js", () => { describe("js", () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {

@ -1,6 +1,6 @@
import * as assert from 'assert'; import * as assert from 'assert';
import * as fs from 'fs'; import * as fs from 'fs';
import { svelte, tryToLoadJson, shouldUpdateExpected } from '../helpers.js'; import { svelte, tryToLoadJson, shouldUpdateExpected } from '../helpers';
describe('parse', () => { describe('parse', () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
@ -38,7 +38,7 @@ describe('parse', () => {
} catch (err) { } catch (err) {
if (err.name !== 'ParseError') throw err; if (err.name !== 'ParseError') throw err;
if (!expectedError) throw err; if (!expectedError) throw err;
const { code, message, pos, start } = err const { code, message, pos, start } = err;
try { try {
assert.deepEqual({ code, message, pos, start }, expectedError); assert.deepEqual({ code, message, pos, start }, expectedError);
} catch (err2) { } catch (err2) {

@ -1,6 +1,6 @@
import * as fs from 'fs'; import * as fs from 'fs';
import * as assert from 'assert'; import * as assert from 'assert';
import { loadConfig, svelte } from '../helpers.js'; import { loadConfig, svelte } from '../helpers';
describe('preprocess', () => { describe('preprocess', () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {

@ -1,12 +1,12 @@
import * as assert from "assert";
import * as path from "path"; import * as path from "path";
import * as fs from "fs"; import * as fs from "fs";
import { rollup } from 'rollup'; import { rollup } from 'rollup';
import * as virtual from '@rollup/plugin-virtual'; import virtual from '@rollup/plugin-virtual';
import * as glob from 'tiny-glob/sync.js'; import glob from 'tiny-glob/sync.js';
import { clear_loops, flush, set_now, set_raf } from "../../internal"; import { clear_loops, flush, set_now, set_raf } from "../../internal";
import { import {
assert,
showOutput, showOutput,
loadConfig, loadConfig,
loadSvelte, loadSvelte,
@ -14,7 +14,7 @@ import {
env, env,
setupHtmlEqual, setupHtmlEqual,
mkdirp mkdirp
} from "../helpers.js"; } from "../helpers";
let svelte$; let svelte$;
let svelte; let svelte;

@ -1,9 +1,9 @@
import * as assert from "assert";
import * as fs from "fs"; import * as fs from "fs";
import * as path from "path"; import * as path from "path";
import * as glob from 'tiny-glob/sync.js'; import glob from 'tiny-glob/sync.js';
import { import {
assert,
showOutput, showOutput,
loadConfig, loadConfig,
loadSvelte, loadSvelte,
@ -12,7 +12,7 @@ import {
cleanRequireCache, cleanRequireCache,
shouldUpdateExpected, shouldUpdateExpected,
mkdirp mkdirp
} from "../helpers.js"; } from "../helpers";
function tryToReadFile(file) { function tryToReadFile(file) {
try { try {

@ -1,7 +1,7 @@
import * as fs from "fs"; import * as fs from "fs";
import * as path from "path"; import * as path from "path";
import * as assert from "assert"; import * as assert from "assert";
import { svelte } from "../helpers.js"; import { svelte } from "../helpers";
import { SourceMapConsumer } from "source-map"; import { SourceMapConsumer } from "source-map";
import { getLocator } from "locate-character"; import { getLocator } from "locate-character";

@ -1,6 +1,6 @@
import * as fs from 'fs'; import * as fs from 'fs';
import * as assert from 'assert'; import * as assert from 'assert';
import { svelte, loadConfig, tryToLoadJson } from '../helpers.js'; import { svelte, loadConfig, tryToLoadJson } from '../helpers';
describe('stats', () => { describe('stats', () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {

@ -3,12 +3,12 @@ const glob = require('tiny-glob/sync.js');
require('./setup'); require('./setup');
// bind internal to jsdom // bind internal to jsdom
require('./helpers'); require('./helpers.ts');
require('../internal'); require('../internal');
console.clear(); console.clear();
const test_folders = glob('*/index.js', { cwd: 'test' }); const test_folders = glob('*/index.ts', { cwd: 'test' });
const solo_folders = test_folders.filter(folder => /\.solo/.test(folder)); const solo_folders = test_folders.filter(folder => /\.solo/.test(folder));
if (solo_folders.length) { if (solo_folders.length) {

@ -1,6 +1,6 @@
import * as fs from "fs"; import * as fs from "fs";
import * as assert from "assert"; import * as assert from "assert";
import { svelte, loadConfig, tryToLoadJson } from "../helpers.js"; import { svelte, loadConfig, tryToLoadJson } from "../helpers";
describe("validate", () => { describe("validate", () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
@ -30,7 +30,7 @@ describe("validate", () => {
legacy: config.legacy, legacy: config.legacy,
generate: false, generate: false,
customElement: config.customElement, customElement: config.customElement,
...options, ...options
}); });
assert.deepEqual(warnings.map(w => ({ assert.deepEqual(warnings.map(w => ({

@ -1,6 +1,6 @@
import * as fs from 'fs'; import * as fs from 'fs';
import * as assert from 'assert'; import * as assert from 'assert';
import { svelte, loadConfig, tryToLoadJson } from '../helpers.js'; import { svelte, loadConfig, tryToLoadJson } from '../helpers';
describe('vars', () => { describe('vars', () => {
fs.readdirSync(`${__dirname}/samples`).forEach(dir => { fs.readdirSync(`${__dirname}/samples`).forEach(dir => {
Loading…
Cancel
Save