Implemented vfs server killing connections. Added more tests

pull/385/head
Tim Robinson 2016-12-03 00:06:03 +00:00
rodzic 927110413c
commit fa432099a8
2 zmienionych plików z 40 dodań i 0 usunięć

Wyświetl plik

@ -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; },

Wyświetl plik

@ -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);
});
});
});