Bladeren bron

Adjust smoke test which also uses mocha

Alex Dima 3 jaren geleden
bovenliggende
commit
7e766abe78
4 gewijzigde bestanden met toevoegingen van 47 en 48 verwijderingen
  1. 1 2
      .mocharc.json
  2. 1 1
      package.json
  3. 1 0
      test/smoke/runner.js
  4. 44 45
      test/smoke/smoke.test.js

+ 1 - 2
.mocharc.json

@@ -1,5 +1,4 @@
 {
 	"delay": true,
-	"ui": "tdd",
-	"spec": "test/unit/all.js"
+	"ui": "tdd"
 }

+ 1 - 1
package.json

@@ -19,7 +19,7 @@
 		"simpleserver": "node ./build/simpleserver",
 		"smoketest-debug": "node ./test/smoke/runner.js --debug-tests",
 		"smoketest": "node ./test/smoke/runner.js",
-		"test": "mocha",
+		"test": "mocha test/unit/all.js",
 		"typedoc": "cd website/typedoc && \"../../node_modules/.bin/typedoc\" --options ./typedoc.json",
 		"watch": "tsc -w -p ./src"
 	},

+ 1 - 0
test/smoke/runner.js

@@ -61,6 +61,7 @@ function runTest(type, browser) {
 			[
 				path.join(REPO_ROOT, 'node_modules/mocha/bin/mocha'),
 				'test/smoke/*.test.js',
+				'--no-delay',
 				'--headless',
 				'--timeout',
 				'20000'

+ 44 - 45
test/smoke/smoke.test.js

@@ -18,52 +18,51 @@ const URL =
 		? `http://127.0.0.1:${PORT}/test/smoke/amd.html`
 		: `http://127.0.0.1:${PORT}/test/smoke/webpack/webpack.html`;
 
-/** @type {playwright.Browser} */
-let browser;
-
-/** @type {playwright.Page} */
-let page;
-
-before(async () => {
-	console.log(`Starting browser: ${browserType}`);
-	browser = await playwright[browserType].launch({
-		headless: !DEBUG_TESTS,
-		devtools: DEBUG_TESTS
-		// slowMo: DEBUG_TESTS ? 2000 : 0
+suite(`Smoke Test '${TESTS_TYPE}'`, () => {
+	/** @type {playwright.Browser} */
+	let browser;
+
+	/** @type {playwright.Page} */
+	let page;
+
+	suiteSetup(async () => {
+		browser = await playwright[browserType].launch({
+			headless: !DEBUG_TESTS,
+			devtools: DEBUG_TESTS && browserType === 'chromium'
+			// slowMo: DEBUG_TESTS ? 2000 : 0
+		});
 	});
-});
 
-after(async () => {
-	await browser.close();
-});
+	suiteTeardown(async () => {
+		await browser.close();
+	});
 
-let pageErrors = [];
+	let pageErrors = [];
 
-beforeEach(async () => {
-	pageErrors = [];
-	page = await browser.newPage({
-		viewport: {
-			width: 800,
-			height: 600
-		}
-	});
-	page.on('pageerror', (e) => {
-		console.log(e);
-		pageErrors.push(e);
+	setup(async () => {
+		pageErrors = [];
+		page = await browser.newPage({
+			viewport: {
+				width: 800,
+				height: 600
+			}
+		});
+		page.on('pageerror', (e) => {
+			console.log(e);
+			pageErrors.push(e);
+		});
+		const response = await page.goto(URL);
+		assert.ok(!!response);
+		assert.strictEqual(response.status(), 200);
 	});
-	const response = await page.goto(URL);
-	assert.ok(!!response);
-	assert.strictEqual(response.status(), 200);
-});
 
-afterEach(async () => {
-	for (const e of pageErrors) {
-		throw e;
-	}
-	await page.close();
-});
+	teardown(async () => {
+		for (const e of pageErrors) {
+			throw e;
+		}
+		await page.close();
+	});
 
-describe(`Smoke Test '${TESTS_TYPE}'`, () => {
 	/**
 	 * @param {string} text
 	 * @param {string} language
@@ -101,11 +100,11 @@ describe(`Smoke Test '${TESTS_TYPE}'`, () => {
 		await page.evaluate(`window.ed.focus();`);
 	}
 
-	it('`monacoAPI` is exposed as global', async () => {
+	test('`monacoAPI` is exposed as global', async () => {
 		assert.strictEqual(await page.evaluate(`typeof monacoAPI`), 'object');
 	});
 
-	it('should be able to create plaintext editor', async () => {
+	test('should be able to create plaintext editor', async () => {
 		await createEditor('hello world', 'plaintext');
 
 		// type a link in it
@@ -116,14 +115,14 @@ describe(`Smoke Test '${TESTS_TYPE}'`, () => {
 		await page.waitForSelector('.detected-link');
 	});
 
-	it('css smoke test', async () => {
+	test('css smoke test', async () => {
 		await createEditor('.sel1 { background: red; }\\n.sel2 {}', 'css');
 
 		// check that a squiggle appears, which indicates that the language service is up and running
 		await page.waitForSelector('.squiggly-warning');
 	});
 
-	it('html smoke test', async () => {
+	test('html smoke test', async () => {
 		await createEditor('<title>hi</title>', 'html');
 
 		// trigger hover
@@ -137,7 +136,7 @@ describe(`Smoke Test '${TESTS_TYPE}'`, () => {
 		await page.waitForSelector(`text=The title element represents the document's title or name`);
 	});
 
-	it('json smoke test', async () => {
+	test('json smoke test', async () => {
 		await createEditor('{}', 'json');
 
 		// trigger suggestions
@@ -149,7 +148,7 @@ describe(`Smoke Test '${TESTS_TYPE}'`, () => {
 		await page.waitForSelector(`text=$schema`);
 	});
 
-	it('typescript smoke test', async () => {
+	test('typescript smoke test', async () => {
 		await createEditor('window.add', 'typescript');
 
 		// check that a squiggle appears, which indicates that the language service is up and running