From c7957b8ad49f6ba7c6af4e9ba1e56545ba51b1b0 Mon Sep 17 00:00:00 2001 From: Alasdair Smith Date: Tue, 13 Feb 2018 16:29:16 +0000 Subject: [PATCH] Convert existing frontend tests to run in karma --- .../ide/history/HistoryManagerV2Tests.coffee | 284 +++++++++--------- .../ide/history/displayUserNameTests.coffee | 115 ++++--- 2 files changed, 189 insertions(+), 210 deletions(-) diff --git a/services/web/test/unit_frontend/coffee/ide/history/HistoryManagerV2Tests.coffee b/services/web/test/unit_frontend/coffee/ide/history/HistoryManagerV2Tests.coffee index d5e4101744..358268310e 100644 --- a/services/web/test/unit_frontend/coffee/ide/history/HistoryManagerV2Tests.coffee +++ b/services/web/test/unit_frontend/coffee/ide/history/HistoryManagerV2Tests.coffee @@ -1,164 +1,152 @@ -Path = require 'path' -SandboxedModule = require "sandboxed-module" -modulePath = Path.join __dirname, '../../../../../public/js/ide/history/HistoryV2Manager' -sinon = require("sinon") -expect = require("chai").expect +define ['ide/history/HistoryV2Manager'], (HistoryV2Manager) -> + describe "HistoryV2Manager", -> + beforeEach -> + @scope = + $watch: sinon.stub() + $on: sinon.stub() + @ide = {} + @historyManager = new HistoryV2Manager(@ide, @scope) -describe "HistoryV2Manager", -> - beforeEach -> - @moment = {} - @ColorManager = {} - SandboxedModule.require modulePath, globals: - "define": (dependencies, builder) => - @HistoryV2Manager = builder(@moment, @ColorManager) - - @scope = - $watch: sinon.stub() - $on: sinon.stub() - @ide = {} - - @historyManager = new @HistoryV2Manager(@ide, @scope) - - it "should setup the history scope on intialization", -> - expect(@scope.history).to.deep.equal({ - isV2: true - updates: [] - nextBeforeTimestamp: null - atEnd: false - selection: { + it "should setup the history scope on intialization", -> + expect(@scope.history).to.deep.equal({ + isV2: true updates: [] - pathname: null - docs: {} - range: { - fromV: null - toV: null + nextBeforeTimestamp: null + atEnd: false + selection: { + updates: [] + pathname: null + docs: {} + range: { + fromV: null + toV: null + } } - } - diff: null - }) - - describe "_perDocSummaryOfUpdates", -> - it "should return the range of updates for the docs", -> - result = @historyManager._perDocSummaryOfUpdates([{ - pathnames: ["main.tex"] - fromV: 7, toV: 9 - },{ - pathnames: ["main.tex", "foo.tex"] - fromV: 4, toV: 6 - },{ - pathnames: ["main.tex"] - fromV: 3, toV: 3 - },{ - pathnames: ["foo.tex"] - fromV: 0, toV: 2 - }]) - - expect(result).to.deep.equal({ - "main.tex": { fromV: 3, toV: 9 }, - "foo.tex": { fromV: 0, toV: 6 } + diff: null }) - it "should track renames", -> - result = @historyManager._perDocSummaryOfUpdates([{ - pathnames: ["main2.tex"] - fromV: 5, toV: 9 - },{ - project_ops: [{ - rename: { - pathname: "main1.tex", - newPathname: "main2.tex" - } - }], - fromV: 4, toV: 4 - },{ - pathnames: ["main1.tex"] - fromV: 3, toV: 3 - },{ - project_ops: [{ - rename: { - pathname: "main0.tex", - newPathname: "main1.tex" - } - }], - fromV: 2, toV: 2 - },{ - pathnames: ["main0.tex"] - fromV: 0, toV: 1 - }]) + describe "_perDocSummaryOfUpdates", -> + it "should return the range of updates for the docs", -> + result = @historyManager._perDocSummaryOfUpdates([{ + pathnames: ["main.tex"] + fromV: 7, toV: 9 + },{ + pathnames: ["main.tex", "foo.tex"] + fromV: 4, toV: 6 + },{ + pathnames: ["main.tex"] + fromV: 3, toV: 3 + },{ + pathnames: ["foo.tex"] + fromV: 0, toV: 2 + }]) - expect(result).to.deep.equal({ - "main0.tex": { fromV: 0, toV: 9 } - }) + expect(result).to.deep.equal({ + "main.tex": { fromV: 3, toV: 9 }, + "foo.tex": { fromV: 0, toV: 6 } + }) - it "should track single renames", -> - result = @historyManager._perDocSummaryOfUpdates([{ - project_ops: [{ - rename: { - pathname: "main1.tex", - newPathname: "main2.tex" - } - }], - fromV: 4, toV: 5 - }]) + it "should track renames", -> + result = @historyManager._perDocSummaryOfUpdates([{ + pathnames: ["main2.tex"] + fromV: 5, toV: 9 + },{ + project_ops: [{ + rename: { + pathname: "main1.tex", + newPathname: "main2.tex" + } + }], + fromV: 4, toV: 4 + },{ + pathnames: ["main1.tex"] + fromV: 3, toV: 3 + },{ + project_ops: [{ + rename: { + pathname: "main0.tex", + newPathname: "main1.tex" + } + }], + fromV: 2, toV: 2 + },{ + pathnames: ["main0.tex"] + fromV: 0, toV: 1 + }]) - expect(result).to.deep.equal({ - "main1.tex": { fromV: 4, toV: 5 } - }) + expect(result).to.deep.equal({ + "main0.tex": { fromV: 0, toV: 9 } + }) - it "should track additions", -> - result = @historyManager._perDocSummaryOfUpdates([{ - project_ops: [{ - add: - pathname: "main.tex" - }] - fromV: 0, toV: 1 - }, { - pathnames: ["main.tex"] - fromV: 1, toV: 4 - }]) + it "should track single renames", -> + result = @historyManager._perDocSummaryOfUpdates([{ + project_ops: [{ + rename: { + pathname: "main1.tex", + newPathname: "main2.tex" + } + }], + fromV: 4, toV: 5 + }]) - expect(result).to.deep.equal({ - "main.tex": { fromV: 0, toV: 4 } - }) + expect(result).to.deep.equal({ + "main1.tex": { fromV: 4, toV: 5 } + }) - it "should track single additions", -> - result = @historyManager._perDocSummaryOfUpdates([{ - project_ops: [{ - add: - pathname: "main.tex" - }] - fromV: 0, toV: 1 - }]) + it "should track additions", -> + result = @historyManager._perDocSummaryOfUpdates([{ + project_ops: [{ + add: + pathname: "main.tex" + }] + fromV: 0, toV: 1 + }, { + pathnames: ["main.tex"] + fromV: 1, toV: 4 + }]) - expect(result).to.deep.equal({ - "main.tex": { fromV: 0, toV: 1 } - }) + expect(result).to.deep.equal({ + "main.tex": { fromV: 0, toV: 4 } + }) - it "should track deletions", -> - result = @historyManager._perDocSummaryOfUpdates([{ - pathnames: ["main.tex"] - fromV: 0, toV: 1 - }, { - project_ops: [{ - remove: - pathname: "main.tex" - }] - fromV: 1, toV: 2 - }]) + it "should track single additions", -> + result = @historyManager._perDocSummaryOfUpdates([{ + project_ops: [{ + add: + pathname: "main.tex" + }] + fromV: 0, toV: 1 + }]) - expect(result).to.deep.equal({ - "main.tex": { fromV: 0, toV: 2, deleted: true } - }) + expect(result).to.deep.equal({ + "main.tex": { fromV: 0, toV: 1 } + }) - it "should track single deletions", -> - result = @historyManager._perDocSummaryOfUpdates([{ - project_ops: [{ - remove: - pathname: "main.tex" - }] - fromV: 0, toV: 1 - }]) + it "should track deletions", -> + result = @historyManager._perDocSummaryOfUpdates([{ + pathnames: ["main.tex"] + fromV: 0, toV: 1 + }, { + project_ops: [{ + remove: + pathname: "main.tex" + }] + fromV: 1, toV: 2 + }]) - expect(result).to.deep.equal({ - "main.tex": { fromV: 0, toV: 1, deleted: true } - }) + expect(result).to.deep.equal({ + "main.tex": { fromV: 0, toV: 2, deleted: true } + }) + + it "should track single deletions", -> + result = @historyManager._perDocSummaryOfUpdates([{ + project_ops: [{ + remove: + pathname: "main.tex" + }] + fromV: 0, toV: 1 + }]) + + expect(result).to.deep.equal({ + "main.tex": { fromV: 0, toV: 1, deleted: true } + }) diff --git a/services/web/test/unit_frontend/coffee/ide/history/displayUserNameTests.coffee b/services/web/test/unit_frontend/coffee/ide/history/displayUserNameTests.coffee index 2a756171a7..32bd77f65c 100644 --- a/services/web/test/unit_frontend/coffee/ide/history/displayUserNameTests.coffee +++ b/services/web/test/unit_frontend/coffee/ide/history/displayUserNameTests.coffee @@ -1,68 +1,59 @@ -Path = require 'path' -SandboxedModule = require "sandboxed-module" -modulePath = Path.join __dirname, '../../../../../public/js/ide/history/util/displayNameForUser' -sinon = require("sinon") -expect = require("chai").expect +define ['ide/history/util/displayNameForUser'], (displayNameForUser) -> + describe "displayNameForUser", -> + beforeEach -> + window.user = { id: 42 } -describe "displayNameForUser", -> - beforeEach -> - SandboxedModule.require modulePath, globals: - "define": (dependencies, builder) => - @displayNameForUser = builder() - "window": @window = {} - @window.user = { id: 42 } + it "should return 'Anonymous' with no user", -> + expect( + displayNameForUser(null) + ).to.equal "Anonymous" - it "should return 'Anonymous' with no user", -> - expect( - @displayNameForUser(null) - ).to.equal "Anonymous" + it "should return 'you' when the user has the same id as the window", -> + expect( + displayNameForUser({ + id: window.user.id + email: "james.allen@overleaf.com" + first_name: "James" + last_name: "Allen" + }) + ).to.equal "you" - it "should return 'you' when the user has the same id as the window", -> - expect( - @displayNameForUser({ - id: @window.user.id - email: "james.allen@overleaf.com" - first_name: "James" - last_name: "Allen" - }) - ).to.equal "you" + it "should return the first_name and last_name when present", -> + expect( + displayNameForUser({ + id: window.user.id + 1 + email: "james.allen@overleaf.com" + first_name: "James" + last_name: "Allen" + }) + ).to.equal "James Allen" - it "should return the first_name and last_name when present", -> - expect( - @displayNameForUser({ - id: @window.user.id + 1 - email: "james.allen@overleaf.com" - first_name: "James" - last_name: "Allen" - }) - ).to.equal "James Allen" + it "should return only the firstAname if no last_name", -> + expect( + displayNameForUser({ + id: window.user.id + 1 + email: "james.allen@overleaf.com" + first_name: "James" + last_name: "" + }) + ).to.equal "James" - it "should return only the firstAname if no last_name", -> - expect( - @displayNameForUser({ - id: @window.user.id + 1 - email: "james.allen@overleaf.com" - first_name: "James" - last_name: "" - }) - ).to.equal "James" + it "should return the email username if there are no names", -> + expect( + displayNameForUser({ + id: window.user.id + 1 + email: "james.allen@overleaf.com" + first_name: "" + last_name: "" + }) + ).to.equal "james.allen" - it "should return the email username if there are no names", -> - expect( - @displayNameForUser({ - id: @window.user.id + 1 - email: "james.allen@overleaf.com" - first_name: "" - last_name: "" - }) - ).to.equal "james.allen" - - it "should return the '?' if it has nothing", -> - expect( - @displayNameForUser({ - id: @window.user.id + 1 - email: "" - first_name: "" - last_name: "" - }) - ).to.equal "?" + it "should return the '?' if it has nothing", -> + expect( + displayNameForUser({ + id: window.user.id + 1 + email: "" + first_name: "" + last_name: "" + }) + ).to.equal "?"