Skip to content

Commit 7e1ed12

Browse files
authored
ci: Add support for Parse Server 6 (#1641)
1 parent 5dabffb commit 7e1ed12

9 files changed

+237
-169
lines changed

integration/test/ParseLiveQueryTest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ describe('Parse LiveQuery', () => {
285285
it('connectPromise does throw', async () => {
286286
await reconfigureServer({
287287
cloud({ Cloud }) {
288-
Cloud.beforeConnect((params) => {
288+
Cloud.beforeConnect(params => {
289289
if (params.sessionToken === 'testToken') {
290290
throw 'not allowed to connect';
291291
}

integration/test/ParseObjectTest.js

Lines changed: 25 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1644,49 +1644,36 @@ describe('Parse Object', () => {
16441644
});
16451645
});
16461646

1647-
it('merges user attributes on fetchAll', done => {
1647+
it('merges user attributes on fetchAll', async () => {
16481648
Parse.User.enableUnsafeCurrentUser();
1649-
let sameUser;
1649+
const acl = new Parse.ACL();
1650+
acl.setPublicReadAccess(true);
16501651
let user = new Parse.User();
16511652
user.set('username', 'asdf');
16521653
user.set('password', 'zxcv');
16531654
user.set('foo', 'bar');
1654-
user
1655-
.signUp()
1656-
.then(() => {
1657-
Parse.User.logOut();
1658-
const query = new Parse.Query(Parse.User);
1659-
return query.get(user.id);
1660-
})
1661-
.then(userAgain => {
1662-
user = userAgain;
1663-
sameUser = new Parse.User();
1664-
sameUser.set('username', 'asdf');
1665-
sameUser.set('password', 'zxcv');
1666-
return sameUser.logIn();
1667-
})
1668-
.then(() => {
1669-
assert(!user.getSessionToken());
1670-
assert(sameUser.getSessionToken());
1671-
sameUser.set('baz', 'qux');
1672-
return sameUser.save();
1673-
})
1674-
.then(() => {
1675-
return Parse.Object.fetchAll([user]);
1676-
})
1677-
.then(() => {
1678-
assert.equal(user.createdAt.getTime(), sameUser.createdAt.getTime());
1679-
assert.equal(user.updatedAt.getTime(), sameUser.updatedAt.getTime());
1680-
return Parse.User.logOut().then(
1681-
() => {
1682-
done();
1683-
},
1684-
() => {
1685-
done();
1686-
}
1687-
);
1688-
})
1689-
.catch(done.fail);
1655+
user.setACL(acl);
1656+
await user.signUp();
1657+
1658+
Parse.User.logOut();
1659+
const query = new Parse.Query(Parse.User);
1660+
user = await query.get(user.id);
1661+
1662+
const sameUser = new Parse.User();
1663+
sameUser.set('username', 'asdf');
1664+
sameUser.set('password', 'zxcv');
1665+
sameUser.setACL(acl);
1666+
await sameUser.logIn();
1667+
1668+
assert(!user.getSessionToken());
1669+
assert(sameUser.getSessionToken());
1670+
sameUser.set('baz', 'qux');
1671+
await sameUser.save();
1672+
1673+
await Parse.Object.fetchAll([user]);
1674+
assert.equal(user.createdAt.getTime(), sameUser.createdAt.getTime());
1675+
assert.equal(user.updatedAt.getTime(), sameUser.updatedAt.getTime());
1676+
await Parse.User.logOut();
16901677
});
16911678

16921679
it('can fetchAllIfNeededWithInclude', async () => {

integration/test/ParseQueryTest.js

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,15 @@ describe('Parse Query', () => {
7171
assert.strictEqual(result.className, 'TestObject');
7272
assert.strictEqual(result.objectId, object.id);
7373

74-
await query.each((obj) => {
75-
assert.strictEqual(obj instanceof Parse.Object, false);
76-
assert.strictEqual(obj.foo, 'bar');
77-
assert.strictEqual(obj.className, 'TestObject');
78-
assert.strictEqual(obj.objectId, object.id);
79-
}, { json: true });
74+
await query.each(
75+
obj => {
76+
assert.strictEqual(obj instanceof Parse.Object, false);
77+
assert.strictEqual(obj.foo, 'bar');
78+
assert.strictEqual(obj.className, 'TestObject');
79+
assert.strictEqual(obj.objectId, object.id);
80+
},
81+
{ json: true }
82+
);
8083
});
8184

8285
it('can do query with count', async () => {
@@ -1771,22 +1774,22 @@ describe('Parse Query', () => {
17711774
}
17721775
});
17731776

1774-
it('can include User fields', done => {
1775-
Parse.User.signUp('bob', 'password', { age: 21 })
1776-
.then(user => {
1777-
const obj = new TestObject();
1778-
return obj.save({ owner: user });
1779-
})
1780-
.then(obj => {
1781-
const query = new Parse.Query(TestObject);
1782-
query.include('owner');
1783-
return query.get(obj.id);
1784-
})
1785-
.then(objAgain => {
1786-
assert(objAgain.get('owner') instanceof Parse.User);
1787-
assert.equal(objAgain.get('owner').get('age'), 21);
1788-
done();
1789-
});
1777+
it('can include User fields', async () => {
1778+
const user = new Parse.User();
1779+
user.set('username', 'bob');
1780+
user.set('password', 'password');
1781+
user.set('age', 21);
1782+
const acl = new Parse.ACL();
1783+
acl.setPublicReadAccess(true);
1784+
user.setACL(acl);
1785+
await user.signUp();
1786+
const obj = new TestObject();
1787+
await obj.save({ owner: user });
1788+
const query = new Parse.Query(TestObject);
1789+
query.include('owner');
1790+
const objAgain = await query.get(obj.id);
1791+
assert(objAgain.get('owner') instanceof Parse.User);
1792+
assert.equal(objAgain.get('owner').get('age'), 21);
17901793
});
17911794

17921795
it('can build OR queries', done => {

integration/test/ParseUserTest.js

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -521,26 +521,24 @@ describe('Parse User', () => {
521521
});
522522
});
523523

524-
it('can count users', done => {
524+
it('can count users', async () => {
525525
const james = new Parse.User();
526526
james.set('username', 'james');
527527
james.set('password', 'mypass');
528-
james
529-
.signUp()
530-
.then(() => {
531-
const kevin = new Parse.User();
532-
kevin.set('username', 'kevin');
533-
kevin.set('password', 'mypass');
534-
return kevin.signUp();
535-
})
536-
.then(() => {
537-
const query = new Parse.Query(Parse.User);
538-
return query.count();
539-
})
540-
.then(c => {
541-
assert.equal(c, 2);
542-
done();
543-
});
528+
const acl = new Parse.ACL();
529+
acl.setPublicReadAccess(true);
530+
james.setACL(acl);
531+
await james.signUp();
532+
const kevin = new Parse.User();
533+
kevin.set('username', 'kevin');
534+
kevin.set('password', 'mypass');
535+
kevin.setACL(acl);
536+
await kevin.signUp();
537+
538+
const query = new Parse.Query(Parse.User);
539+
const c = await query.count();
540+
541+
assert.equal(c, 2);
544542
});
545543

546544
it('can sign up user with container class', done => {

integration/test/helper.js

Lines changed: 36 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -97,38 +97,26 @@ const destroyAliveConnections = function () {
9797
let parseServer;
9898
let server;
9999

100-
const reconfigureServer = (changedConfiguration = {}) => {
101-
return new Promise((resolve, reject) => {
102-
if (server) {
103-
return parseServer.handleShutdown().then(() => {
104-
server.close(() => {
105-
parseServer = undefined;
106-
server = undefined;
107-
reconfigureServer(changedConfiguration).then(resolve, reject);
108-
});
109-
});
110-
}
111-
try {
112-
didChangeConfiguration = Object.keys(changedConfiguration).length !== 0;
113-
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration || {}, {
114-
serverStartComplete: error => {
115-
if (error) {
116-
reject(error);
117-
} else {
118-
resolve(parseServer);
119-
}
120-
},
121-
mountPath,
122-
port,
123-
});
124-
parseServer = ParseServer.start(newConfiguration);
125-
const app = parseServer.expressApp;
126-
for (const fileName of ['parse.js', 'parse.min.js']) {
127-
const file = fs
128-
.readFileSync(path.resolve(__dirname, `./../../dist/${fileName}`))
129-
.toString();
130-
app.get(`/${fileName}`, (req, res) => {
131-
res.send(`<html><head>
100+
const reconfigureServer = async (changedConfiguration = {}) => {
101+
if (server) {
102+
await parseServer.handleShutdown();
103+
await new Promise(resolve => server.close(resolve));
104+
parseServer = undefined;
105+
server = undefined;
106+
return reconfigureServer(changedConfiguration);
107+
}
108+
109+
didChangeConfiguration = Object.keys(changedConfiguration).length !== 0;
110+
const newConfiguration = Object.assign({}, defaultConfiguration, changedConfiguration || {}, {
111+
mountPath,
112+
port,
113+
});
114+
parseServer = await ParseServer.startApp(newConfiguration);
115+
const app = parseServer.expressApp;
116+
for (const fileName of ['parse.js', 'parse.min.js']) {
117+
const file = fs.readFileSync(path.resolve(__dirname, `./../../dist/${fileName}`)).toString();
118+
app.get(`/${fileName}`, (req, res) => {
119+
res.send(`<html><head>
132120
<meta charset="utf-8">
133121
<meta http-equiv="X-UA-Compatible" content="IE=edge">
134122
<title>Parse Functionality Test</title>
@@ -142,26 +130,23 @@ const reconfigureServer = (changedConfiguration = {}) => {
142130
</head>
143131
<body>
144132
</body></html>`);
145-
});
146-
}
147-
app.get('/clear/:fast', (req, res) => {
148-
const { fast } = req.params;
149-
TestUtils.destroyAllDataPermanently(fast).then(() => {
150-
res.send('{}');
151-
});
152-
});
153-
server = parseServer.server;
154-
server.on('connection', connection => {
155-
const key = `${connection.remoteAddress}:${connection.remotePort}`;
156-
openConnections[key] = connection;
157-
connection.on('close', () => {
158-
delete openConnections[key];
159-
});
160-
});
161-
} catch (error) {
162-
reject(error);
163-
}
133+
});
134+
}
135+
app.get('/clear/:fast', (req, res) => {
136+
const { fast } = req.params;
137+
TestUtils.destroyAllDataPermanently(fast).then(() => {
138+
res.send('{}');
139+
});
140+
});
141+
server = parseServer.server;
142+
server.on('connection', connection => {
143+
const key = `${connection.remoteAddress}:${connection.remotePort}`;
144+
openConnections[key] = connection;
145+
connection.on('close', () => {
146+
delete openConnections[key];
147+
});
164148
});
149+
return parseServer;
165150
};
166151
global.DiffObject = Parse.Object.extend('DiffObject');
167152
global.Item = Parse.Object.extend('Item');

0 commit comments

Comments
 (0)