smc-hub
Version:
CoCalc: Backend webserver component
170 lines (163 loc) • 5.25 kB
JavaScript
// Generated by CoffeeScript 2.5.1
(function() {
//########################################################################
// This file is part of CoCalc: Copyright © 2020 Sagemath, Inc.
// License: AGPLv3 s.t. "Commons Clause" – see LICENSE.md for details
//########################################################################
/*
Using API to interact with a project
*/
var api, expect, setup, teardown;
api = require('./apitest');
({setup, teardown} = api);
expect = require('expect');
describe('testing api calls with one project -- ', function() {
var project_id;
before(setup);
after(teardown);
project_id = void 0;
it("creates a project", function(done) {
return api.call({
event: 'create_project',
body: {
title: 'Project Title',
description: 'Project Description'
},
cb: function(err, resp) {
expect(resp != null ? resp.event : void 0).toBe('project_created');
project_id = resp.project_id;
return done(err);
}
});
});
it("queries database directly to confirm project is there", function(done) {
return api.db.get_project({
project_id: project_id,
cb: function(err, project) {
var ref;
expect((project != null ? (ref = project.users) != null ? ref[api.account_id] : void 0 : void 0) != null).toBe(true);
expect(project != null ? project.title : void 0).toBe('Project Title');
return done(err);
}
});
});
it("uses query api to get info about project", function(done) {
return api.call({
event: 'query',
body: {
query: {
projects: {
project_id: project_id,
title: null,
description: null
}
}
},
cb: function(err, resp) {
var ref, ref1;
expect(resp != null ? (ref = resp.query) != null ? (ref1 = ref.projects) != null ? ref1.title : void 0 : void 0 : void 0).toBe('Project Title');
return done(err);
}
});
});
it("uses the query api to change the project title", function(done) {
return api.call({
event: 'query',
body: {
query: {
projects: {
project_id: project_id,
title: 'New Title'
}
}
},
cb: done
});
});
it("confirm title change", function(done) {
return api.call({
event: 'query',
body: {
query: {
projects: {
project_id: project_id,
title: null
}
}
},
cb: function(err, resp) {
var ref, ref1;
expect(resp != null ? (ref = resp.query) != null ? (ref1 = ref.projects) != null ? ref1.title : void 0 : void 0 : void 0).toBe('New Title');
return done(err);
}
});
});
it("creates project and omits title", function(done) {
return api.call({
event: 'create_project',
body: {
description: 'DESCXXX'
},
cb: function(err, resp) {
expect(resp != null ? resp.event : void 0).toBe('project_created');
project_id = resp.project_id;
return done(err);
}
});
});
it("confirms blank title", function(done) {
return api.call({
event: 'query',
body: {
query: {
projects: {
project_id: project_id,
title: null,
description: null
}
}
},
cb: function(err, resp) {
var ref, ref1, ref2, ref3;
expect(resp != null ? (ref = resp.query) != null ? (ref1 = ref.projects) != null ? ref1.title : void 0 : void 0 : void 0).toBe('');
expect(resp != null ? (ref2 = resp.query) != null ? (ref3 = ref2.projects) != null ? ref3.description : void 0 : void 0 : void 0).toBe('DESCXXX');
return done(err);
}
});
});
it("creates project and omits description", function(done) {
return api.call({
event: 'create_project',
body: {
title: 'TITLEXXX'
},
cb: function(err, resp) {
expect(resp != null ? resp.event : void 0).toBe('project_created');
project_id = resp.project_id;
return done(err);
}
});
});
return it("confirms blank description", function(done) {
return api.call({
event: 'query',
body: {
query: {
projects: {
project_id: project_id,
title: null,
description: null
}
}
},
cb: function(err, resp) {
var ref, ref1, ref2, ref3;
expect(resp != null ? (ref = resp.query) != null ? (ref1 = ref.projects) != null ? ref1.title : void 0 : void 0 : void 0).toBe('TITLEXXX');
expect(resp != null ? (ref2 = resp.query) != null ? (ref3 = ref2.projects) != null ? ref3.description : void 0 : void 0 : void 0).toBe('');
return done(err);
}
});
});
});
}).call(this);
//# sourceMappingURL=project.js.map