kopia lustrzana https://github.com/c9/core
Implemented vfs server killing connections. Added more tests
rodzic
927110413c
commit
fa432099a8
|
@ -343,6 +343,8 @@ function plugin(options, imports, register) {
|
|||
case "update_member_access":
|
||||
handleProjectMemberAccessChange(vfs, message);
|
||||
break;
|
||||
case "project_changed":
|
||||
handleProjectVisibilityChanged(vfs, message);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -359,6 +361,17 @@ function plugin(options, imports, register) {
|
|||
}, 100);
|
||||
}
|
||||
|
||||
function handleProjectVisibilityChanged(vfs, message) {
|
||||
if (vfs.uid == message.body.owner) return;
|
||||
|
||||
console.log("Project visibilty changed. Message is: ", message);
|
||||
if ((message.body.visibility && message.body.visibility == "private") ||
|
||||
(message.body.appAccess && message.body.appAccess == "private")) {
|
||||
|
||||
cache.remove(vfs.id);
|
||||
}
|
||||
}
|
||||
|
||||
register(null, {
|
||||
"vfs.server": {
|
||||
get section() { return section; },
|
||||
|
|
|
@ -116,6 +116,33 @@ describe(__filename, function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe("project_changed", function() {
|
||||
it("If the project is being made private all non-owner members should be ejected", function (done) {
|
||||
var projectOwnerVfs = {
|
||||
id: "9c123",
|
||||
uid: "123"
|
||||
};
|
||||
var projectMemberVfs = {
|
||||
id: "9c456",
|
||||
uid: "456"
|
||||
};
|
||||
var message = JSON.stringify({
|
||||
action: "project_changed",
|
||||
body: {
|
||||
owner: 123,
|
||||
visibility: "private"
|
||||
}
|
||||
});
|
||||
server.handlePublish(projectOwnerVfs, message);
|
||||
server.handlePublish(projectMemberVfs, message);
|
||||
setTimeout(function() {
|
||||
assert(mockCache.remove.neverCalledWith(projectOwnerVfs.id));
|
||||
assert(mockCache.remove.calledWith(projectMemberVfs.id));
|
||||
done();
|
||||
}, 150);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue