From 201424dd08f4a530ccebfd628865e7d0a7036305 Mon Sep 17 00:00:00 2001 From: Joe Cowman Date: Fri, 28 Dec 2018 17:07:07 -0600 Subject: [PATCH] refactor: Change UMD global name; add test cases --- src/bundle.ts | 2 +- test/cases/esm/esm.test.ts | 38 ++++------------------------------- test/cases/umd/package.json | 1 + test/cases/umd/regal.json | 14 +++++++++++++ test/cases/umd/test-umd.html | 13 ++++++++++++ test/cases/umd/umd.test.ts | 39 ++++++++++++++++++++++++++++++++++++ test/unit/bundle.test.ts | 2 +- 7 files changed, 73 insertions(+), 36 deletions(-) create mode 100644 test/cases/umd/package.json create mode 100644 test/cases/umd/regal.json create mode 100644 test/cases/umd/test-umd.html create mode 100644 test/cases/umd/umd.test.ts diff --git a/src/bundle.ts b/src/bundle.ts index b4b07d2..51d3ff7 100644 --- a/src/bundle.ts +++ b/src/bundle.ts @@ -116,7 +116,7 @@ export const makeOutputOpts = (config: LoadedConfiguration) => { break; case ModuleFormat.UMD: output.format = format; - output.name = "GameBundle"; + output.name = "Game"; break; default: throw new RegalError(`Illegal module format: ${format}`); diff --git a/test/cases/esm/esm.test.ts b/test/cases/esm/esm.test.ts index ad9e368..987f7a5 100644 --- a/test/cases/esm/esm.test.ts +++ b/test/cases/esm/esm.test.ts @@ -1,40 +1,10 @@ -import * as path from "path"; -import * as fs from "fs"; -import { GameApi } from "regal"; -import { lines } from "../../test-utils"; -import { bundleHeader } from "../../../src/bundle"; - // @ts-ignore: import will be resolved import { bundle } from "../../../dist/regal-bundler.cjs.js"; describe("Case: ESM", () => { - beforeAll( - async () => - await bundle({ - configLocation: __dirname - }) - ); - - it("TODO", async () => { - // @ts-ignore: import will be resolved - // const Game: GameApi = await import("./the-smallest-game.regal.js"); - // let response = Game.postStartCommand(); - // expect(response.output.wasSuccessful).toBe(true); - // expect(lines(response)).toEqual(["Game initialized to zero."]); - // response = Game.postPlayerCommand(response.instance, "inc"); - // expect(response.output.wasSuccessful).toBe(true); - // expect(lines(response)).toEqual([ - // "Game state incremented from 0 to 1." - // ]); - // for (let i = 0; i < 5; i++) { - // response = Game.postPlayerCommand(response.instance, "dec"); - // } - // expect(response.output.wasSuccessful).toBe(true); - // expect(lines(response)).toEqual([ - // "Game state decremented from -3 to -4." - // ]); - // response = Game.postPlayerCommand(response.instance, "woof"); - // expect(response.output.wasSuccessful).toBe(true); - // expect(lines(response)).toEqual(["Command not recognized: 'woof'."]); + it("Bundles successfully", async () => { + await bundle({ + configLocation: __dirname + }); }); }); diff --git a/test/cases/umd/package.json b/test/cases/umd/package.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/test/cases/umd/package.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/cases/umd/regal.json b/test/cases/umd/regal.json new file mode 100644 index 0000000..74fd4ee --- /dev/null +++ b/test/cases/umd/regal.json @@ -0,0 +1,14 @@ +{ + "game": { + "name": "My UMD Game", + "author": "Joe Cowman" + }, + "bundler": { + "input": { + "file": "../basic/src/index.ts" + }, + "output": { + "format": "umd" + } + } +} \ No newline at end of file diff --git a/test/cases/umd/test-umd.html b/test/cases/umd/test-umd.html new file mode 100644 index 0000000..8f18f42 --- /dev/null +++ b/test/cases/umd/test-umd.html @@ -0,0 +1,13 @@ + + + + + + UMD Test + + + + + + + \ No newline at end of file diff --git a/test/cases/umd/umd.test.ts b/test/cases/umd/umd.test.ts new file mode 100644 index 0000000..4f2cec3 --- /dev/null +++ b/test/cases/umd/umd.test.ts @@ -0,0 +1,39 @@ +// @ts-ignore: import will be resolved +import { bundle } from "../../../dist/regal-bundler.cjs.js"; +import { lines } from "../../test-utils"; +import { GameApi } from "regal"; + +describe("Case: UMD", () => { + beforeAll(async () => { + await bundle({ + configLocation: __dirname + }); + }); + + it("Creates a functional bundle", async () => { + // @ts-ignore: import will be resolved + const Game: GameApi = await import("./my-umd-game.regal.js"); + + let response = Game.postStartCommand(); + expect(response.output.wasSuccessful).toBe(true); + expect(lines(response)).toEqual(["Game initialized to zero."]); + + response = Game.postPlayerCommand(response.instance, "inc"); + expect(response.output.wasSuccessful).toBe(true); + expect(lines(response)).toEqual([ + "Game state incremented from 0 to 1." + ]); + + for (let i = 0; i < 5; i++) { + response = Game.postPlayerCommand(response.instance, "dec"); + } + expect(response.output.wasSuccessful).toBe(true); + expect(lines(response)).toEqual([ + "Game state decremented from -3 to -4." + ]); + + response = Game.postPlayerCommand(response.instance, "woof"); + expect(response.output.wasSuccessful).toBe(true); + expect(lines(response)).toEqual(["Command not recognized: 'woof'."]); + }); +}); diff --git a/test/unit/bundle.test.ts b/test/unit/bundle.test.ts index 727aa78..801a048 100644 --- a/test/unit/bundle.test.ts +++ b/test/unit/bundle.test.ts @@ -168,7 +168,7 @@ describe("Bundle", () => { const opts = makeOutputOpts(config); expect(opts.format).toBe(ModuleFormat.UMD); - expect(opts.name).toBe("GameBundle"); + expect(opts.name).toBe("Game"); }); it("Rejects other module formats", () => {