fix admin-user-helper and enable retrieveAccount tests

This commit is contained in:
blagoev 2017-07-07 12:16:12 +03:00
parent ee452963c2
commit 9c63858d29
4 changed files with 74 additions and 64 deletions

View File

@ -12,8 +12,7 @@ function random(min, max) {
exports.createAdminUser = function () {
return new Promise((resolve, reject) => {
const admin_token_user = Realm.Sync.User.adminUser(fs.readFileSync(path.join(__dirname, '../../object-server-for-testing/admin_token.base64'), 'utf-8'));
let isAdminRetryCounter = 0;
let newAdminName = 'admin' + random(1, 100000);
@ -21,22 +20,33 @@ exports.createAdminUser = function () {
Realm.Sync.User.register('http://localhost:9080', newAdminName, password, (error, user) => {
if (error) {
reject(error);
} else {
} else {
let userIdentity = user.identity;
user.logout();
let admin_token_user = Realm.Sync.User.adminUser(fs.readFileSync(path.join(__dirname, '/../../object-server-for-testing/admin_token.base64'), 'utf-8'));
const config = {
sync: {
user: admin_token_user,
url: `realm://localhost:9080/__admin`,
error: err => console.log('Error opening __admin realm ' + err),
error: err =>
console.log('Error opening __admin realm ' + err.user + ' ' + err.url + ' ' + err.state),
}
};
Realm.open(config).then(realm => {
let pendingAdminUser = realm.objects('User').filtered(`id == "${user.identity}"`)[0];
if (userIdentity == admin_token_user.identity)
{
console.log(".");
}
let pendingAdminUser = realm.objects('User').filtered(`id == "${userIdentity}"`)[0];
realm.write(() => {
pendingAdminUser.isAdmin = true;
});
user.logout();
admin_token_user.logout();
}).then(_ => {
let waitForServerToUpdateAdminUser = function () {
isAdminRetryCounter++;
@ -45,11 +55,11 @@ exports.createAdminUser = function () {
return;
}
Realm.Sync.User.login('http://localhost:9080', newAdminName, password, (error, user) => {
Realm.Sync.User.login('http://localhost:9080', newAdminName, password, (error, newAdminUser) => {
if (error) {
reject(error);
} else {
let isAdmin = user.isAdmin;
let isAdmin = newAdminUser.isAdmin;
user.logout();
if (!isAdmin) {
setTimeout(_ => {

View File

@ -75,7 +75,7 @@ exports.registerTests = function(tests) {
exports.prepare = function(done) {
if (global.testAdminUserInfo) {
return;
done();
}
let helper = require('./admin-user-helper');

View File

@ -295,67 +295,67 @@ module.exports = {
});
},
// testRetrieveAccount() {
// return new Promise((resolve, reject) => {
// if (!global.testAdminUserInfo) {
// reject("Test requires an admin user");
// }
testRetrieveAccount() {
return new Promise((resolve, reject) => {
if (!global.testAdminUserInfo) {
reject("Test requires an admin user");
}
// Realm.Sync.User.login('http://localhost:9080', global.testAdminUserInfo.username, global.testAdminUserInfo.password, (error, user) => {
// if (error) {
// reject(error);
// }
Realm.Sync.User.login('http://localhost:9080', global.testAdminUserInfo.username, global.testAdminUserInfo.password, (error, user) => {
if (error) {
reject(error);
}
// TestCase.assertTrue(user.isAdmin, "Test requires an admin user");
TestCase.assertTrue(user.isAdmin, "Test requires an admin user");
// user.retrieveAccount('password', global.testAdminUserInfo.username)
// .then(account => {
// // {
// // "provider_id": "admin",
// // "provider": "password",
// // "user": {
// // "id": "07ac9a0a-a97a-4ee1-b53c-b05a6542035a",
// // "isAdmin": true,
// // }
// // }
user.retrieveAccount('password', global.testAdminUserInfo.username)
.then(account => {
// {
// "provider_id": "admin",
// "provider": "password",
// "user": {
// "id": "07ac9a0a-a97a-4ee1-b53c-b05a6542035a",
// "isAdmin": true,
// }
// }
// TestCase.assertEqual(account.provider_id, global.testAdminUserInfo.username);
// TestCase.assertEqual(account.provider, 'password');
// TestCase.assertTrue(account.user);
// TestCase.assertTrue(account.user.isAdmin !== undefined);
// TestCase.assertTrue(account.user.id);
// resolve();
// })
// .catch(e => reject(e));
// })
// });
// },
TestCase.assertEqual(account.provider_id, global.testAdminUserInfo.username);
TestCase.assertEqual(account.provider, 'password');
TestCase.assertTrue(account.user);
TestCase.assertTrue(account.user.isAdmin !== undefined);
TestCase.assertTrue(account.user.id);
resolve();
})
.catch(e => reject(e));
})
});
},
// testRetrieveNotExistingAccount() {
// return new Promise((resolve, reject) => {
// if (!global.testAdminUserInfo) {
// reject("Test requires an admin user");
// }
testRetrieveNotExistingAccount() {
return new Promise((resolve, reject) => {
if (!global.testAdminUserInfo) {
reject("Test requires an admin user");
}
// Realm.Sync.User.login('http://localhost:9080', global.testAdminUserInfo.username, global.testAdminUserInfo.password, (error, user) => {
// if (error) {
// reject(error);
// }
Realm.Sync.User.login('http://localhost:9080', global.testAdminUserInfo.username, global.testAdminUserInfo.password, (error, user) => {
if (error) {
reject(error);
}
// TestCase.assertTrue(user.isAdmin, "Test requires an admin user");
TestCase.assertTrue(user.isAdmin, "Test requires an admin user");
// let notExistingUsername = uuid();
// user.retrieveAccount('password', notExistingUsername)
// .then(account => {
// reject("Retrieving not existing account should fail");
// })
// .catch(e => {
// TestCase.assertEqual(e.code, 404);
// resolve()
// });
// })
// });
// },
let notExistingUsername = uuid();
user.retrieveAccount('password', notExistingUsername)
.then(account => {
reject("Retrieving not existing account should fail");
})
.catch(e => {
TestCase.assertEqual(e.code, 404);
resolve()
});
})
});
},
/* This test fails because of realm-object-store #243 . We should use 2 users.
testSynchronizeChangesWithTwoClientsAndOneUser() {

View File

@ -55,8 +55,8 @@ Realm.copyBundledRealmFiles = function() {
const tests = RealmTests.getTestNames();
for (const suiteName in tests) {
describe(suiteName, () => {
//beforeAll(done => RealmTests.prepare(done));
beforeAll(done => RealmTests.prepare(done));
beforeEach(() => RealmTests.runTest(suiteName, 'beforeEach'));