Skip to content

Commit d9dd991

Browse files
committed
Progres towards moving mongo logic into its adapter
1 parent 0b2dc12 commit d9dd991

9 files changed

+385
-269
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"deepcopy": "^0.6.1",
2828
"express": "^4.13.4",
2929
"intersect": "^1.0.1",
30+
"lodash": "^4.8.2",
3031
"lru-cache": "^4.0.0",
3132
"mailgun-js": "^0.7.7",
3233
"mime": "^1.3.4",

spec/AdaptableController.spec.js

+9-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ MockController.prototype = Object.create(AdaptableController.prototype);
1010
MockController.prototype.constructor = AdaptableController;
1111

1212
describe("AdaptableController", ()=>{
13-
13+
1414
it("should use the provided adapter", (done) => {
1515
var adapter = new FilesAdapter();
1616
var controller = new FilesController(adapter);
@@ -22,15 +22,15 @@ describe("AdaptableController", ()=>{
2222
expect(controller.adapter).toBe(adapter);
2323
done();
2424
});
25-
25+
2626
it("should throw when creating a new mock controller", (done) => {
2727
var adapter = new FilesAdapter();
2828
expect(() => {
2929
new MockController(adapter);
3030
}).toThrow();
3131
done();
3232
});
33-
33+
3434
it("should fail setting the wrong adapter to the controller", (done) => {
3535
function WrongAdapter() {};
3636
var adapter = new FilesAdapter();
@@ -41,7 +41,7 @@ describe("AdaptableController", ()=>{
4141
}).toThrow();
4242
done();
4343
});
44-
44+
4545
it("should fail to instantiate a controller with wrong adapter", (done) => {
4646
function WrongAdapter() {};
4747
var adapter = new WrongAdapter();
@@ -50,14 +50,14 @@ describe("AdaptableController", ()=>{
5050
}).toThrow();
5151
done();
5252
});
53-
53+
5454
it("should fail to instantiate a controller without an adapter", (done) => {
5555
expect(() => {
5656
new FilesController();
5757
}).toThrow();
5858
done();
5959
});
60-
60+
6161
it("should accept an object adapter", (done) => {
6262
var adapter = {
6363
createFile: function(config, filename, data) { },
@@ -70,18 +70,18 @@ describe("AdaptableController", ()=>{
7070
}).not.toThrow();
7171
done();
7272
});
73-
73+
7474
it("should accept an object adapter", (done) => {
7575
function AGoodAdapter() {};
7676
AGoodAdapter.prototype.createFile = function(config, filename, data) { };
7777
AGoodAdapter.prototype.deleteFile = function(config, filename) { };
7878
AGoodAdapter.prototype.getFileData = function(config, filename) { };
7979
AGoodAdapter.prototype.getFileLocation = function(config, filename) { };
80-
80+
8181
var adapter = new AGoodAdapter();
8282
expect(() => {
8383
new FilesController(adapter);
8484
}).not.toThrow();
8585
done();
8686
});
87-
});
87+
});
+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
'use strict';
2+
3+
const MongoSchemaCollection = require('../src/Adapters/Storage/Mongo/MongoSchemaCollection').default;
4+
5+
describe('MongoSchemaCollection', () => {
6+
it('can transform legacy _client_permissions keys to parse format', done => {
7+
expect(MongoSchemaCollection._TESTmongoSchemaToParseSchema({
8+
"_id":"_Installation",
9+
"_client_permissions":{
10+
"get":true,
11+
"find":true,
12+
"update":true,
13+
"create":true,
14+
"delete":true,
15+
},
16+
"_metadata":{
17+
"class_permissions":{
18+
"get":{"*":true},
19+
"find":{"*":true},
20+
"update":{"*":true},
21+
"create":{"*":true},
22+
"delete":{"*":true},
23+
"addField":{"*":true},
24+
}
25+
},
26+
"installationId":"string",
27+
"deviceToken":"string",
28+
"deviceType":"string",
29+
"channels":"array",
30+
"user":"*_User",
31+
})).toEqual({
32+
className: '_Installation',
33+
fields: {
34+
installationId: { type: 'String' },
35+
deviceToken: { type: 'String' },
36+
deviceType: { type: 'String' },
37+
channels: { type: 'Array' },
38+
user: { type: 'Pointer', targetClass: '_User' },
39+
ACL: { type: 'ACL' },
40+
createdAt: { type: 'Date' },
41+
updatedAt: { type: 'Date' },
42+
objectId: { type: 'String' },
43+
},
44+
classLevelPermissions: {
45+
find: { '*': true },
46+
get: { '*': true },
47+
create: { '*': true },
48+
update: { '*': true },
49+
delete: { '*': true },
50+
addField: { '*': true },
51+
}
52+
});
53+
done();
54+
});
55+
});

spec/OAuth.spec.js

+10-11
Original file line numberDiff line numberDiff line change
@@ -242,22 +242,21 @@ describe('OAuth', function() {
242242
it("should only create a single user with REST API", (done) => {
243243
var objectId;
244244
createOAuthUser((error, response, body) => {
245+
expect(error).toBe(null);
246+
var b = JSON.parse(body);
247+
expect(b.objectId).not.toBeNull();
248+
expect(b.objectId).not.toBeUndefined();
249+
objectId = b.objectId;
250+
251+
createOAuthUser((error, response, body) => {
245252
expect(error).toBe(null);
246253
var b = JSON.parse(body);
247254
expect(b.objectId).not.toBeNull();
248255
expect(b.objectId).not.toBeUndefined();
249-
objectId = b.objectId;
250-
251-
createOAuthUser((error, response, body) => {
252-
expect(error).toBe(null);
253-
var b = JSON.parse(body);
254-
expect(b.objectId).not.toBeNull();
255-
expect(b.objectId).not.toBeUndefined();
256-
expect(b.objectId).toBe(objectId);
257-
done();
258-
});
256+
expect(b.objectId).toBe(objectId);
257+
done();
259258
});
260-
259+
});
261260
});
262261

263262
it("unlink and link with custom provider", (done) => {

0 commit comments

Comments
 (0)