Skip to content

Commit be7913a

Browse files
authored
Fix a slew of Node.js tests and regenerate some snippets (#3352)
## Pull Request Info - SDK Docs Consolidation This PR mostly fixes fixes tests, but made some snippet changes for a couple of pages too. - [Counters](https://deploy-preview-3352--device-sdk.netlify.app/sdk/node/model-data/data-types/counters/) - [Quickstart](https://deploy-preview-3352--device-sdk.netlify.app/sdk/node/quick-start/) ### Release Notes - Mostly internal: Node SDK - Fixed failing tests
1 parent f7ef092 commit be7913a

File tree

35 files changed

+1072
-531
lines changed

35 files changed

+1072
-531
lines changed

examples/node/v12/__tests__/configure-and-open-synced-realm.test.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ describe("Configure & Open a Synced Realm", () => {
5858
});
5959
});
6060

61+
// Make sure realm is empty
62+
realm.write(() => {
63+
realm.deleteAll();
64+
});
65+
6166
const dogs = realm.objects(Doggie);
6267

6368
await realm.syncSession?.downloadAllServerChanges();

examples/node/v12/__tests__/configure-and-open-synced-realm.test.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Realm, { BSON, Credentials, ObjectSchema } from "realm";
2-
import { APP_ID } from "../config";
2+
import { APP_ID } from "../config.ts";
33

44
describe("Configure & Open a Synced Realm", () => {
55
test("test cancelWaitsOnNonFatalError is valid config", async () => {
@@ -65,6 +65,11 @@ describe("Configure & Open a Synced Realm", () => {
6565
});
6666
});
6767

68+
// Make sure realm is empty
69+
realm.write(() => {
70+
realm.deleteAll();
71+
});
72+
6873
const dogs = realm.objects<Doggie>(Doggie);
6974

7075
// :snippet-start: wait-for-download
Lines changed: 88 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,107 @@
1-
import Realm, { BSON, Counter, ObjectSchema, UpdateMode } from "realm";
2-
3-
// :snippet-start:declare-counter-schema
4-
class myClass extends Realm.Object {
5-
_id!;
6-
myCounter!;
7-
nullableCounter;
8-
9-
static schema = {
10-
name: "myClass",
11-
primaryKey: "_id",
12-
properties: {
13-
_id: { type: "objectId", default: () => new BSON.ObjectId() },
14-
myCounter: { type: "int", presentation: "counter" },
15-
// or myCounter: "counter"
16-
nullableCounter: { type: "int", presentation: "counter", optional: true },
17-
// or nullableCounter: "counter?"
18-
},
19-
}
20-
};
21-
// :snippet-end:
22-
23-
const realm = await Realm.open({
24-
schema: [myClass],
25-
});
1+
import Realm, { UpdateMode } from "realm";
2+
3+
import { SiteVisitTracker } from "./models/models.js";
4+
5+
// This test exists to ensure that the JS model definition works that same way
6+
// as the TS model definition. There are no snippets generated from this file,
7+
// as it's the exact same code as what's in the TS file.
268

279
describe("Counter Updates", () => {
28-
test("testing normal methods", async () => {
29-
30-
// :snippet-start:initialize-counter
31-
const myObject = realm.write(() => {
32-
return realm.create( myClass, { myCounter: 0 } );
33-
});
34-
// :snippet-end:
35-
36-
realm.write(() => {
37-
// :snippet-start:update-counter
38-
myObject.myCounter.increment();
39-
myObject.myCounter.value; // 1
40-
expect(myObject.myCounter.value).toBe(1) // :remove:
41-
myObject.myCounter.increment(2);
42-
myObject.myCounter.value; // 3
43-
expect(myObject.myCounter.value).toBe(3) // :remove:
44-
myObject.myCounter.decrement(2);
45-
myObject.myCounter.value; // 1
46-
expect(myObject.myCounter.value).toBe(1) // :remove:
47-
myObject.myCounter.increment(-2);
48-
myObject.myCounter.value; // -1
49-
expect(myObject.myCounter.value).toBe(-1) // :remove:
50-
myObject.myCounter.set(0); // reset counter value to 0
51-
// :snippet-end:
52-
expect(myObject.myCounter.value).toBe(0)
53-
});
54-
55-
realm.close()
10+
test("testing normal methods", async () => {
11+
const realm = await Realm.open({
12+
schema: [SiteVisitTracker],
5613
});
5714

58-
test("testing nullability switching", async () => {
59-
60-
// :snippet-start:null-updating
61-
const myObject = realm.write(() => {
62-
return realm.create( myClass, { nullableCounter: 0 } );
63-
});
15+
const siteVisitTracker = realm.write(() => {
16+
return realm.create(SiteVisitTracker, { siteVisits: 0 });
17+
});
6418

65-
const myID = myObject._id
66-
expect(myObject.nullableCounter?.value).toBe(0) // :remove:
19+
realm.write(() => {
20+
siteVisitTracker.siteVisits.increment();
21+
siteVisitTracker.siteVisits.value; // 1
22+
expect(siteVisitTracker.siteVisits.value).toBe(1);
23+
siteVisitTracker.siteVisits.increment(2);
24+
siteVisitTracker.siteVisits.value; // 3
25+
expect(siteVisitTracker.siteVisits.value).toBe(3);
26+
siteVisitTracker.siteVisits.decrement(2);
27+
siteVisitTracker.siteVisits.value; // 1
28+
expect(siteVisitTracker.siteVisits.value).toBe(1);
29+
siteVisitTracker.siteVisits.increment(-2);
30+
siteVisitTracker.siteVisits.value; // -1
31+
expect(siteVisitTracker.siteVisits.value).toBe(-1);
32+
siteVisitTracker.siteVisits.set(0); // reset counter value to 0
33+
34+
expect(siteVisitTracker.siteVisits.value).toBe(0);
35+
});
36+
});
6737

68-
realm.write(() => {
69-
realm.create( myClass, { _id: myID, nullableCounter: null }, UpdateMode.Modified );
70-
});
71-
expect(myObject.nullableCounter).toBe(null) // :remove:
38+
test("testing nullability switching", async () => {
39+
const realm = await Realm.open({
40+
schema: [SiteVisitTracker],
41+
});
7242

73-
realm.write(() => {
74-
realm.create( myClass, { _id: myID, nullableCounter: 0 }, UpdateMode.Modified );
75-
});
76-
// :snippet-end:
43+
const siteVisitTracker = realm.write(() => {
44+
return realm.create(SiteVisitTracker, {
45+
nullableSiteVisits: 0,
46+
siteVisits: 1,
47+
});
48+
});
7749

78-
expect(myObject.nullableCounter?.value).toBe(0)
50+
const myID = siteVisitTracker._id;
51+
expect(siteVisitTracker.nullableSiteVisits?.value).toBe(0);
7952

53+
realm.write(() => {
54+
realm.create(
55+
SiteVisitTracker,
56+
{ _id: myID, nullableSiteVisits: null },
57+
UpdateMode.Modified
58+
);
59+
});
60+
expect(siteVisitTracker.nullableSiteVisits).toBe(null);
61+
62+
realm.write(() => {
63+
realm.create(
64+
SiteVisitTracker,
65+
{ _id: myID, nullableSiteVisits: 0 },
66+
UpdateMode.Modified
67+
);
8068
});
8169

82-
test("testing filtering", async () => {
70+
expect(siteVisitTracker.nullableSiteVisits?.value).toBe(0);
71+
});
8372

84-
// :snippet-start:filtering-with-counter
85-
const belowThreshold = realm.write(() => {
86-
return realm.create( myClass, { myCounter: 0 } );
87-
});
73+
test("testing filtering", async () => {
74+
const realm = await Realm.open({
75+
schema: [SiteVisitTracker],
76+
});
8877

89-
const atThreshold = realm.write(() => {
90-
return realm.create( myClass, { myCounter: 1 } );
91-
});
78+
const belowThreshold = realm.write(() => {
79+
return realm.create(SiteVisitTracker, { siteVisits: 0 });
80+
});
9281

93-
const aboveThreshold = realm.write(() => {
94-
return realm.create( myClass, { myCounter: 2 } );
95-
});
82+
const atThreshold = realm.write(() => {
83+
return realm.create(SiteVisitTracker, { siteVisits: 1 });
84+
});
9685

97-
const allObjects = realm.objects('myClass');
86+
const aboveThreshold = realm.write(() => {
87+
return realm.create(SiteVisitTracker, { siteVisits: 2 });
88+
});
9889

99-
let filteredObjects = allObjects.filtered('counter >= $0', atThreshold.myCounter.value);
100-
// :snippet-end:
90+
const allObjects = realm.objects("SiteVisitTracker");
10191

102-
let unfilteredExpected = [belowThreshold, atThreshold, aboveThreshold]
103-
let filteredExpected = [atThreshold, aboveThreshold]
92+
let filteredObjects = allObjects.filtered(
93+
"siteVisits >= $0",
94+
atThreshold.siteVisits.value
95+
);
10496

105-
expect(JSON.stringify(allObjects)).toMatch(JSON.stringify(unfilteredExpected));
106-
expect(JSON.stringify(filteredObjects)).toMatch(JSON.stringify(filteredExpected));
97+
let unfilteredExpected = [belowThreshold, atThreshold, aboveThreshold];
98+
let filteredExpected = [atThreshold, aboveThreshold];
10799

108-
});
109-
});
100+
expect(JSON.stringify(allObjects)).toMatch(
101+
JSON.stringify(unfilteredExpected)
102+
);
103+
expect(JSON.stringify(filteredObjects)).toMatch(
104+
JSON.stringify(filteredExpected)
105+
);
106+
});
107+
});

0 commit comments

Comments
 (0)