|
|
@@ -6,39 +6,63 @@ RealTimeClient = require "./helpers/RealTimeClient"
|
|
|
MockWebClient = require "./helpers/MockWebClient"
|
|
|
|
|
|
describe "joinProject", ->
|
|
|
- before (done) ->
|
|
|
- @user_id = "mock-user-id"
|
|
|
- @project_id = "mock-project-id"
|
|
|
- privileges = {}
|
|
|
- privileges[@user_id] = "owner"
|
|
|
- MockWebClient.createMockProject(@project_id, privileges, {
|
|
|
- name: "Test Project"
|
|
|
- })
|
|
|
- MockWebClient.run (error) =>
|
|
|
- throw error if error?
|
|
|
- RealTimeClient.setSession {
|
|
|
- user: { _id: @user_id }
|
|
|
- }, (error) =>
|
|
|
+ describe "when authorized", ->
|
|
|
+ before (done) ->
|
|
|
+ @user_id = "mock-user-id"
|
|
|
+ @project_id = "mock-project-id"
|
|
|
+ privileges = {}
|
|
|
+ privileges[@user_id] = "owner"
|
|
|
+ MockWebClient.createMockProject(@project_id, privileges, {
|
|
|
+ name: "Test Project"
|
|
|
+ })
|
|
|
+ MockWebClient.run (error) =>
|
|
|
throw error if error?
|
|
|
- @client = RealTimeClient.connect()
|
|
|
- @client.emit "joinProject", {
|
|
|
- project_id: @project_id
|
|
|
- }, (error, @project, @privilegeLevel, @protocolVersion) =>
|
|
|
+ RealTimeClient.setSession {
|
|
|
+ user: { _id: @user_id }
|
|
|
+ }, (error) =>
|
|
|
throw error if error?
|
|
|
- done()
|
|
|
-
|
|
|
- it "should get the project from web", ->
|
|
|
- MockWebClient.joinProject
|
|
|
- .calledWith(@project_id, @user_id)
|
|
|
- .should.equal true
|
|
|
-
|
|
|
- it "should return the project", ->
|
|
|
- @project.should.deep.equal {
|
|
|
- name: "Test Project"
|
|
|
- }
|
|
|
-
|
|
|
- it "should return the privilege level", ->
|
|
|
- @privilegeLevel.should.equal "owner"
|
|
|
-
|
|
|
- it "should return the protocolVersion", ->
|
|
|
- @protocolVersion.should.equal 2
|
|
|
+ @client = RealTimeClient.connect()
|
|
|
+ @client.emit "joinProject", {
|
|
|
+ project_id: @project_id
|
|
|
+ }, (error, @project, @privilegeLevel, @protocolVersion) =>
|
|
|
+ throw error if error?
|
|
|
+ done()
|
|
|
+
|
|
|
+ it "should get the project from web", ->
|
|
|
+ MockWebClient.joinProject
|
|
|
+ .calledWith(@project_id, @user_id)
|
|
|
+ .should.equal true
|
|
|
+
|
|
|
+ it "should return the project", ->
|
|
|
+ @project.should.deep.equal {
|
|
|
+ name: "Test Project"
|
|
|
+ }
|
|
|
+
|
|
|
+ it "should return the privilege level", ->
|
|
|
+ @privilegeLevel.should.equal "owner"
|
|
|
+
|
|
|
+ it "should return the protocolVersion", ->
|
|
|
+ @protocolVersion.should.equal 2
|
|
|
+
|
|
|
+ describe "when not authorized", ->
|
|
|
+ before (done) ->
|
|
|
+ @user_id = "mock-user-id-2"
|
|
|
+ @project_id = "mock-project-id-2"
|
|
|
+ privileges = {}
|
|
|
+ MockWebClient.createMockProject(@project_id, privileges, {
|
|
|
+ name: "Test Project"
|
|
|
+ })
|
|
|
+ MockWebClient.run (error) =>
|
|
|
+ throw error if error?
|
|
|
+ RealTimeClient.setSession {
|
|
|
+ user: { _id: @user_id }
|
|
|
+ }, (error) =>
|
|
|
+ throw error if error?
|
|
|
+ @client = RealTimeClient.connect()
|
|
|
+ @client.emit "joinProject", {
|
|
|
+ project_id: @project_id
|
|
|
+ }, (@error, @project, @privilegeLevel, @protocolVersion) =>
|
|
|
+ done()
|
|
|
+
|
|
|
+ it "should return an error", ->
|
|
|
+ @error.message.should.equal "not authorized"
|