Add a test which synchronizes a change between two clients
This commit is contained in:
parent
900827d72f
commit
5d7ec04d1b
|
@ -275,5 +275,64 @@ module.exports = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
testSynchronizeChangesWithTwoClientsAndOneUser() {
|
||||||
|
// Test Schema
|
||||||
|
class Foo {}
|
||||||
|
Foo.schema = {
|
||||||
|
name: 'Foo',
|
||||||
|
properties: {
|
||||||
|
string: 'string',
|
||||||
|
bars: { type: 'list', objectType: 'Bar' },
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
class Bar {}
|
||||||
|
Bar.schema = {
|
||||||
|
name: 'Bar',
|
||||||
|
properties: { integer: 'int' },
|
||||||
|
};
|
||||||
|
|
||||||
|
const schema = [Foo.schema, Bar.schema];
|
||||||
|
|
||||||
|
// Create a user, open two clients at different local paths, synchronize changes
|
||||||
|
const username = uuid();
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
Realm.Sync.User.register('http://localhost:9080', username, 'password', (error ,user) => {
|
||||||
|
failOnError(error);
|
||||||
|
|
||||||
|
const clientA = new Realm({
|
||||||
|
path: 'testSynchronizeChangesWithTwoClientsAndOneUser_clientA.realm',
|
||||||
|
schema: schema,
|
||||||
|
sync: {
|
||||||
|
user: user,
|
||||||
|
url: 'http://localhost:9080/~/test',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const clientB = new Realm({
|
||||||
|
path: 'testSynchronizeChangesWithTwoClientsAndOneUser_clientB.realm',
|
||||||
|
schema: schema,
|
||||||
|
sync: {
|
||||||
|
user: user,
|
||||||
|
url: 'http://localhost:9080/~/test',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
clientB.addListener('change', () => {
|
||||||
|
const foos = clientB.objects('Foo');
|
||||||
|
if (foos.length > 0) {
|
||||||
|
TestCase.assertEqual(foos.length, 1);
|
||||||
|
TestCase.assertEqual(foos[0].string, 'Hello, World!');
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clientA.write(() => {
|
||||||
|
clientA.create('Foo', { string: 'Hello, World!' });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue