Quellcode durchsuchen

Convert existing frontend tests to run in karma

Alasdair Smith vor 8 Jahren
Ursprung
Commit
c7957b8ad4

+ 148 - 160
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
-
-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: {
+define ['ide/history/HistoryV2Manager'], (HistoryV2Manager) ->
+	describe "HistoryV2Manager", ->
+		beforeEach ->
+			@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: []
-				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 }
-			})
-
-		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({
-				"main0.tex": { fromV: 0, toV: 9 }
-			})
-
-		it "should track single renames", ->
-			result = @historyManager._perDocSummaryOfUpdates([{
-				project_ops: [{
-					rename: {
-						pathname: "main1.tex",
-						newPathname: "main2.tex"
+				nextBeforeTimestamp: null
+				atEnd: false
+				selection: {
+					updates: []
+					pathname: null
+					docs: {}
+					range: {
+						fromV: null
+						toV: null
 					}
-				}],
-				fromV: 4, toV: 5
-			}])
-
-			expect(result).to.deep.equal({
-				"main1.tex": { fromV: 4, toV: 5 }
-			})
-
-		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: 4 }
-			})
-
-		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: 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: 2, deleted: true }
+				}
+				diff: null
 			})
 
-		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 }
-			})
+		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 }
+				})
+
+			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({
+					"main0.tex": { fromV: 0, toV: 9 }
+				})
+
+			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({
+					"main1.tex": { fromV: 4, toV: 5 }
+				})
+
+			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: 4 }
+				})
+
+			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: 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: 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 }
+				})

+ 53 - 62
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 "?"