Switch to using scoped variable instead of variables on context

Changes to mocha mean that a new context is passed to each describe block
instead of it persisting between them.

This means that this test cannot be parallelised, however this was the case
beforehand (subsequent tests are dependent on earlier tests).
This commit is contained in:
Alasdair Smith
2018-02-26 15:31:41 +00:00
parent 3217a3fbf0
commit 19cec9451d
@@ -16,6 +16,12 @@ request = require "./helpers/request"
User = require "./helpers/User"
describe "ProjectStructureChanges", ->
example_project_id = null
example_doc_id = null
example_file_id = null
example_folder_id_1 = null
example_folder_id_2 = null
before (done) ->
@owner = new User()
@owner.login done
@@ -25,11 +31,11 @@ describe "ProjectStructureChanges", ->
MockDocUpdaterApi.clearProjectStructureUpdates()
@owner.createProject "example-project", {template: "example"}, (error, project_id) =>
throw error if error?
@example_project_id = project_id
example_project_id = project_id
done()
it "should version creating a doc", ->
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(2)
_.each updates, (update) =>
expect(update.userId).to.equal(@owner._id)
@@ -38,7 +44,7 @@ describe "ProjectStructureChanges", ->
expect(_.where(updates, pathname: "/references.bib").length).to.equal 1
it "should version creating a file", ->
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -48,8 +54,9 @@ describe "ProjectStructureChanges", ->
describe "duplicating a project", ->
before (done) ->
MockDocUpdaterApi.clearProjectStructureUpdates()
console.log(example_project_id)
@owner.request.post {
uri: "/Project/#{@example_project_id}/clone",
uri: "/Project/#{example_project_id}/clone",
json:
projectName: 'new.tex'
}, (error, res, body) =>
@@ -80,10 +87,10 @@ describe "ProjectStructureChanges", ->
before (done) ->
MockDocUpdaterApi.clearProjectStructureUpdates()
ProjectGetter.getProject @example_project_id, (error, project) =>
ProjectGetter.getProject example_project_id, (error, project) =>
throw error if error?
@owner.request.post {
uri: "project/#{@example_project_id}/doc",
uri: "project/#{example_project_id}/doc",
json:
name: 'new.tex'
parent_folder_id: project.rootFolder[0]._id
@@ -91,11 +98,11 @@ describe "ProjectStructureChanges", ->
throw error if error?
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to add doc #{res.statusCode}")
@example_doc_id = body._id
example_doc_id = body._id
done()
it "should version the doc added", ->
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -137,7 +144,7 @@ describe "ProjectStructureChanges", ->
describe "uploading a file", ->
before (done) ->
ProjectGetter.getProject @example_project_id, (error, project) =>
ProjectGetter.getProject example_project_id, (error, project) =>
throw error if error?
@root_folder_id = project.rootFolder[0]._id.toString()
done()
@@ -149,7 +156,7 @@ describe "ProjectStructureChanges", ->
image_file = fs.createReadStream(Path.resolve(__dirname + '/../files/1pixel.png'))
req = @owner.request.post {
uri: "project/#{@example_project_id}/upload",
uri: "project/#{example_project_id}/upload",
qs:
folder_id: @root_folder_id
formData:
@@ -163,9 +170,9 @@ describe "ProjectStructureChanges", ->
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to upload file #{res.statusCode}")
@example_file_id = JSON.parse(body).entity_id
example_file_id = JSON.parse(body).entity_id
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -179,7 +186,7 @@ describe "ProjectStructureChanges", ->
image_file = fs.createReadStream(Path.resolve(__dirname + '/../files/2pixel.png'))
req = @owner.request.post {
uri: "project/#{@example_project_id}/upload",
uri: "project/#{example_project_id}/upload",
qs:
folder_id: @root_folder_id
formData:
@@ -193,7 +200,7 @@ describe "ProjectStructureChanges", ->
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to upload file #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -205,12 +212,12 @@ describe "ProjectStructureChanges", ->
describe "moving entities", ->
before (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/folder",
uri: "project/#{example_project_id}/folder",
formData:
name: 'foo'
}, (error, res, body) =>
throw error if error?
@example_folder_id_1 = JSON.parse(body)._id
example_folder_id_1 = JSON.parse(body)._id
done()
beforeEach () ->
@@ -218,15 +225,15 @@ describe "ProjectStructureChanges", ->
it "should version moving a doc", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/Doc/#{@example_doc_id}/move",
uri: "project/#{example_project_id}/Doc/#{example_doc_id}/move",
json:
folder_id: @example_folder_id_1
folder_id: example_folder_id_1
}, (error, res, body) =>
throw error if error?
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move doc #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -237,15 +244,15 @@ describe "ProjectStructureChanges", ->
it "should version moving a file", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/File/#{@example_file_id}/move",
uri: "project/#{example_project_id}/File/#{example_file_id}/move",
json:
folder_id: @example_folder_id_1
folder_id: example_folder_id_1
}, (error, res, body) =>
throw error if error?
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move file #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -256,30 +263,30 @@ describe "ProjectStructureChanges", ->
it "should version moving a folder", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/folder",
uri: "project/#{example_project_id}/folder",
formData:
name: 'bar'
}, (error, res, body) =>
throw error if error?
@example_folder_id_2 = JSON.parse(body)._id
example_folder_id_2 = JSON.parse(body)._id
@owner.request.post {
uri: "project/#{@example_project_id}/Folder/#{@example_folder_id_1}/move",
uri: "project/#{example_project_id}/Folder/#{example_folder_id_1}/move",
json:
folder_id: @example_folder_id_2
folder_id: example_folder_id_2
}, (error, res, body) =>
throw error if error?
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move folder #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
expect(update.pathname).to.equal("/foo/new.tex")
expect(update.newPathname).to.equal("/bar/foo/new.tex")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -294,7 +301,7 @@ describe "ProjectStructureChanges", ->
it "should version renaming a doc", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/Doc/#{@example_doc_id}/rename",
uri: "project/#{example_project_id}/Doc/#{example_doc_id}/rename",
json:
name: 'new_renamed.tex'
}, (error, res, body) =>
@@ -302,7 +309,7 @@ describe "ProjectStructureChanges", ->
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move doc #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -313,7 +320,7 @@ describe "ProjectStructureChanges", ->
it "should version renaming a file", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/File/#{@example_file_id}/rename",
uri: "project/#{example_project_id}/File/#{example_file_id}/rename",
json:
name: '1pixel_renamed.png'
}, (error, res, body) =>
@@ -321,7 +328,7 @@ describe "ProjectStructureChanges", ->
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move file #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -332,7 +339,7 @@ describe "ProjectStructureChanges", ->
it "should version renaming a folder", (done) ->
@owner.request.post {
uri: "project/#{@example_project_id}/Folder/#{@example_folder_id_1}/rename",
uri: "project/#{example_project_id}/Folder/#{example_folder_id_1}/rename",
json:
name: 'foo_renamed'
}, (error, res, body) =>
@@ -340,14 +347,14 @@ describe "ProjectStructureChanges", ->
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to move folder #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
expect(update.pathname).to.equal("/bar/foo/new_renamed.tex")
expect(update.newPathname).to.equal("/bar/foo_renamed/new_renamed.tex")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
@@ -362,20 +369,20 @@ describe "ProjectStructureChanges", ->
it "should version deleting a folder", (done) ->
@owner.request.delete {
uri: "project/#{@example_project_id}/Folder/#{@example_folder_id_2}",
uri: "project/#{example_project_id}/Folder/#{example_folder_id_2}",
}, (error, res, body) =>
throw error if error?
if res.statusCode < 200 || res.statusCode >= 300
throw new Error("failed to delete folder #{res.statusCode}")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).docUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).docUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)
expect(update.pathname).to.equal("/bar/foo_renamed/new_renamed.tex")
expect(update.newPathname).to.equal("")
updates = MockDocUpdaterApi.getProjectStructureUpdates(@example_project_id).fileUpdates
updates = MockDocUpdaterApi.getProjectStructureUpdates(example_project_id).fileUpdates
expect(updates.length).to.equal(1)
update = updates[0]
expect(update.userId).to.equal(@owner._id)