diff --git a/services/real-time/test/acceptance/coffee/JoinDocTests.coffee b/services/real-time/test/acceptance/coffee/JoinDocTests.coffee index a339cf7ef8..707108ebf6 100644 --- a/services/real-time/test/acceptance/coffee/JoinDocTests.coffee +++ b/services/real-time/test/acceptance/coffee/JoinDocTests.coffee @@ -36,6 +36,11 @@ describe "joinDoc", -> it "should return the doc lines, version and ops", -> @returnedArgs.should.deep.equal [@lines, @version, @ops] + + it "should have joined the doc room", (done) -> + RealTimeClient.getConnectedClient @client.socket.sessionid, (error, client) => + expect(@doc_id in client.rooms).to.equal true + done() describe "when authorised readOnly", -> before (done) -> @@ -61,6 +66,11 @@ describe "joinDoc", -> it "should return the doc lines, version and ops", -> @returnedArgs.should.deep.equal [@lines, @version, @ops] + + it "should have joined the doc room", (done) -> + RealTimeClient.getConnectedClient @client.socket.sessionid, (error, client) => + expect(@doc_id in client.rooms).to.equal true + done() describe "when authorised as owner", -> before (done) -> @@ -86,6 +96,11 @@ describe "joinDoc", -> it "should return the doc lines, version and ops", -> @returnedArgs.should.deep.equal [@lines, @version, @ops] + + it "should have joined the doc room", (done) -> + RealTimeClient.getConnectedClient @client.socket.sessionid, (error, client) => + expect(@doc_id in client.rooms).to.equal true + done() # It is impossible to write an acceptance test to test joining an unauthorized # project, since joinProject already catches that. If you can join a project, @@ -115,4 +130,9 @@ describe "joinDoc", -> .should.equal true it "should return the doc lines, version and ops", -> - @returnedArgs.should.deep.equal [@lines, @version, @ops] \ No newline at end of file + @returnedArgs.should.deep.equal [@lines, @version, @ops] + + it "should have joined the doc room", (done) -> + RealTimeClient.getConnectedClient @client.socket.sessionid, (error, client) => + expect(@doc_id in client.rooms).to.equal true + done() \ No newline at end of file diff --git a/services/real-time/test/acceptance/coffee/LeaveDocTests.coffee b/services/real-time/test/acceptance/coffee/LeaveDocTests.coffee new file mode 100644 index 0000000000..fe1ef94f4d --- /dev/null +++ b/services/real-time/test/acceptance/coffee/LeaveDocTests.coffee @@ -0,0 +1,41 @@ +chai = require("chai") +expect = chai.expect +chai.should() + +RealTimeClient = require "./helpers/RealTimeClient" +MockDocUpdaterServer = require "./helpers/MockDocUpdaterServer" +FixturesManager = require "./helpers/FixturesManager" + +describe "leaveDoc", -> + before -> + @lines = ["test", "doc", "lines"] + @version = 42 + @ops = ["mock", "doc", "ops"] + + describe "when joined to a doc", -> + before (done) -> + FixturesManager.setUpProject { + privilegeLevel: "readAndWrite" + }, (error, data) => + throw error if error? + {@project_id, @user_id} = data + FixturesManager.setUpDoc @project_id, {@lines, @version, @ops}, (error, data) => + throw error if error? + {@doc_id} = data + @client = RealTimeClient.connect() + @client.emit "joinProject", project_id: @project_id, (error) => + throw error if error? + @client.emit "joinDoc", @doc_id, (error, @returnedArgs...) => + throw error if error? + done() + + describe "then leaving the doc", -> + before (done) -> + @client.emit "leaveDoc", @doc_id, (error) -> + throw error if error? + done() + + it "should have left the doc room", (done) -> + RealTimeClient.getConnectedClient @client.socket.sessionid, (error, client) => + expect(@doc_id in client.rooms).to.equal false + done()