From fb4e2b6f73e7fab9d13d2043b3bf36977ab2cc5e Mon Sep 17 00:00:00 2001 From: James Baxley Date: Fri, 10 Nov 2017 13:07:59 -0500 Subject: [PATCH] fix tests --- .../boilerplate-generator-tests/test-lib.js | 28 ++- .../web.browser-tests.js | 105 ++++---- .../web.cordova-tests.js | 93 +++---- packages/server-render/server-register.js | 10 +- packages/server-render/server-render-tests.js | 178 +++++++------ packages/server-render/server-sink.js | 1 - packages/webapp/webapp_server.js | 1 - packages/webapp/webapp_tests.js | 237 ++++++++++-------- 8 files changed, 382 insertions(+), 271 deletions(-) diff --git a/packages/boilerplate-generator-tests/test-lib.js b/packages/boilerplate-generator-tests/test-lib.js index 98b445b7c3..aa74332947 100644 --- a/packages/boilerplate-generator-tests/test-lib.js +++ b/packages/boilerplate-generator-tests/test-lib.js @@ -1,4 +1,4 @@ -export function generateHTMLForArch(arch) { +export async function generateHTMLForArch(arch) { // Use a dummy manifest. None of these paths will be read from the filesystem, but css / js should be handled differently const manifest = [ { @@ -50,5 +50,29 @@ export function generateHTMLForArch(arch) { }, }); - return boilerplate.toHTML(); + + const { start, stream, end } = boilerplate.toHTML(); + + const body = await toString(stream); + + return start + body + end; }; + + +function toString(stream) { + return new Promise((success, fail) => { + var string = '' + stream.on('readable', function(buffer) { + var part = buffer.read().toString(); + string += part; + }); + + stream.on('end', function() { + success(string) + }); + + stream.on('error', function(error) { + fail(error); + }); + }); +} diff --git a/packages/boilerplate-generator-tests/web.browser-tests.js b/packages/boilerplate-generator-tests/web.browser-tests.js index f69df8dbef..dbf383cd19 100644 --- a/packages/boilerplate-generator-tests/web.browser-tests.js +++ b/packages/boilerplate-generator-tests/web.browser-tests.js @@ -2,62 +2,69 @@ import { parse, serialize } from 'parse5'; import { generateHTMLForArch } from './test-lib'; -const html = generateHTMLForArch('web.browser'); +const start = async () => { + const html = await generateHTMLForArch('web.browser'); -Tinytest.add("boilerplate-generator-tests - web.browser - well-formed html", function (test) { - const formatted = serialize(parse(html)); - test.isTrue(formatted.replace(/\s/g, '') === html.replace(/\s/g, '')); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - well-formed html", function (test) { + const formatted = serialize(parse(html)); + test.isTrue(formatted.replace(/\s/g, '') === html.replace(/\s/g, '')); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - include htmlAttributes", function (test) { - test.matches(html, /foo="foobar"/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - include htmlAttributes", function (test) { + test.matches(html, /foo="foobar"/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - escape htmlAttributes", function (test) { - test.matches(html, /gems="&""/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - escape htmlAttributes", function (test) { + test.matches(html, /gems="&""/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - include js", function (test) { - test.matches(html, /]*src="[^<>]*templating[^<>]*">/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - include js", function (test) { + test.matches(html, /]*src="[^<>]*templating[^<>]*">/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - escape js", function (test) { - test.matches(html, /]*src="[^<>]*templating[^<>]*&v="1"[^<>]*">/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - escape js", function (test) { + test.matches(html, /]*src="[^<>]*templating[^<>]*&v="1"[^<>]*">/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - include css", function (test) { - test.matches(html, /]*href="[^<>]*bootstrap[^<>]*">/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - include css", function (test) { + test.matches(html, /]*href="[^<>]*bootstrap[^<>]*">/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - escape css", function (test) { - test.matches(html, /]*href="[^<>]*bootstrap[^<>]*&v="1"[^<>]*">/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - escape css", function (test) { + test.matches(html, /]*href="[^<>]*bootstrap[^<>]*&v="1"[^<>]*">/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - call rewriteHook", function (test) { - test.matches(html, /\+rewritten_url=true/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - call rewriteHook", function (test) { + test.matches(html, /\+rewritten_url=true/); + }); -Tinytest.add("boilerplate-generator-tests - web.browser - include runtime config", function (test) { - test.matches(html, /]*>[^<>]*__meteor_runtime_config__ =.*decodeURIComponent\(config123\)/); -}); + Tinytest.add("boilerplate-generator-tests - web.browser - include runtime config", function (test) { + test.matches(html, /]*>[^<>]*__meteor_runtime_config__ =.*decodeURIComponent\(config123\)/); + }); -// https://github.com/meteor/meteor/issues/9149 -Tinytest.add( - "boilerplate-generator-tests - web.browser - properly render boilerplate " + - "elements when _.template settings are overridden", - function (test) { - import { _ } from 'meteor/underscore'; - _.templateSettings = { - interpolate: /\{\{(.+?)\}\}/g - }; - const newHtml = generateHTMLForArch('web.browser'); - test.matches(newHtml, /foo="foobar"/); - test.matches(newHtml, /]*href="[^<>]*bootstrap[^<>]*">/); - test.matches(newHtml, /]*src="[^<>]*templating[^<>]*">/); - test.matches(newHtml, /