mixpanel-react-native 3.0.0-beta.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,161 +0,0 @@
1
- import uuid from "uuid";
2
-
3
- describe("MixpanelPersistent", () => {
4
- const token = "testToken";
5
- let asyncStorageAdapterMock;
6
- let MixpanelPersistent;
7
-
8
- beforeEach(() => {
9
- jest.isolateModules(() => {
10
- jest.mock("uuid", () => ({
11
- v4: jest.fn(() => "uuid-v4-mock"),
12
- }));
13
-
14
- MixpanelPersistent = require("mixpanel-react-native/javascript/mixpanel-persistent")
15
- .MixpanelPersistent;
16
- const AsyncStorageAdapter = require("mixpanel-react-native/javascript/mixpanel-storage")
17
- .AsyncStorageAdapter;
18
- asyncStorageAdapterMock = new AsyncStorageAdapter();
19
- asyncStorageAdapterMock.getItem.mockResolvedValue(null);
20
- asyncStorageAdapterMock.setItem.mockResolvedValue(undefined);
21
- asyncStorageAdapterMock.removeItem.mockResolvedValue(undefined);
22
- });
23
- });
24
-
25
- it("loads and persists deviceId correctly", async () => {
26
- const mixpanelPersistent = MixpanelPersistent.getInstance(
27
- asyncStorageAdapterMock
28
- );
29
- await mixpanelPersistent.loadDeviceId(token);
30
-
31
- expect(uuid.v4).toHaveBeenCalled();
32
- mixpanelPersistent.updateDeviceId(token, "uuid-v4-mock");
33
- mixpanelPersistent.persistDeviceId(token);
34
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
35
- expect.any(String),
36
- "uuid-v4-mock"
37
- );
38
-
39
- const deviceId = mixpanelPersistent.getDeviceId(token);
40
- expect(deviceId).toEqual("uuid-v4-mock");
41
- });
42
-
43
- it("loads and updates distinctId correctly", async () => {
44
- const mixpanelPersistent = MixpanelPersistent.getInstance(
45
- asyncStorageAdapterMock
46
- );
47
-
48
- await mixpanelPersistent.loadDeviceId(token);
49
- mixpanelPersistent.updateDeviceId(token, "device-id-mock");
50
-
51
- await mixpanelPersistent.loadDistinctId(token);
52
- const distinctId = mixpanelPersistent.getDistinctId(token);
53
- expect(distinctId).toEqual("$device:device-id-mock");
54
-
55
- mixpanelPersistent.updateDistinctId(token, "distinct-id-updated");
56
- await mixpanelPersistent.persistDistinctId(token);
57
-
58
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
59
- expect.any(String),
60
- "distinct-id-updated"
61
- );
62
- });
63
-
64
- it("loads and persists userId correctly", async () => {
65
- const mixpanelPersistent = MixpanelPersistent.getInstance(
66
- asyncStorageAdapterMock
67
- );
68
- const userId = "user-id-mock";
69
-
70
- asyncStorageAdapterMock.getItem.mockResolvedValueOnce(userId);
71
-
72
- await mixpanelPersistent.loadUserId(token);
73
- expect(mixpanelPersistent.getUserId(token)).toEqual(userId);
74
-
75
- const newUserId = "new-user-id";
76
- mixpanelPersistent.updateUserId(token, newUserId);
77
- await mixpanelPersistent.persistUserId(token);
78
-
79
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
80
- expect.any(String),
81
- newUserId
82
- );
83
- });
84
-
85
- it("loads, updates, and persists super properties correctly", async () => {
86
- const mixpanelPersistent = MixpanelPersistent.getInstance(
87
- asyncStorageAdapterMock
88
- );
89
- const superProperties = { prop1: "value1", prop2: "value2" };
90
- asyncStorageAdapterMock.getItem.mockResolvedValueOnce(
91
- JSON.stringify(superProperties)
92
- );
93
-
94
- await mixpanelPersistent.loadSuperProperties(token);
95
-
96
- expect(mixpanelPersistent.getSuperProperties(token)).toEqual(
97
- superProperties
98
- );
99
-
100
- const updatedSuperProperties = { ...superProperties, prop3: "value3" };
101
- mixpanelPersistent.updateSuperProperties(token, updatedSuperProperties);
102
- await mixpanelPersistent.persistSuperProperties(token);
103
-
104
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
105
- expect.any(String),
106
- JSON.stringify(updatedSuperProperties)
107
- );
108
- });
109
-
110
- it("loads, updates, and persists time events correctly", async () => {
111
- const mixpanelPersistent = MixpanelPersistent.getInstance(
112
- asyncStorageAdapterMock
113
- );
114
- const timeEvents = { event1: Date.now() };
115
-
116
- asyncStorageAdapterMock.getItem.mockResolvedValueOnce(
117
- JSON.stringify(timeEvents)
118
- );
119
-
120
- await mixpanelPersistent.loadTimeEvents(token);
121
-
122
- expect(mixpanelPersistent.getTimeEvents(token)).toEqual(timeEvents);
123
-
124
- const updatedTimeEvents = { ...timeEvents, event2: Date.now() };
125
- mixpanelPersistent.updateTimeEvents(token, updatedTimeEvents);
126
- await mixpanelPersistent.persistTimeEvents(token);
127
-
128
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
129
- expect.any(String),
130
- JSON.stringify(updatedTimeEvents)
131
- );
132
- });
133
-
134
- it("loads, updates, and persists opt-out status correctly", async () => {
135
- const mixpanelPersistent = MixpanelPersistent.getInstance(
136
- asyncStorageAdapterMock
137
- );
138
-
139
- asyncStorageAdapterMock.getItem.mockResolvedValueOnce("true");
140
-
141
- await mixpanelPersistent.loadOptOut(token);
142
- expect(mixpanelPersistent.getOptedOut(token)).toBe(true);
143
-
144
- mixpanelPersistent.updateOptedOut(token, false);
145
- await mixpanelPersistent.persistOptedOut(token);
146
-
147
- expect(asyncStorageAdapterMock.setItem).toHaveBeenCalledWith(
148
- expect.any(String),
149
- "false"
150
- );
151
- });
152
-
153
- it("resets identity and related data correctly", async () => {
154
- const mixpanelPersistent = MixpanelPersistent.getInstance(
155
- asyncStorageAdapterMock
156
- );
157
-
158
- await mixpanelPersistent.reset(token);
159
- expect(asyncStorageAdapterMock.removeItem).toHaveBeenCalledTimes(5);
160
- });
161
- });
@@ -1,49 +0,0 @@
1
- {
2
- "keep": {
3
- "days": true,
4
- "amount": 14
5
- },
6
- "auditLog": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/.b11bf985d66a037ca5688a574653f3bf76a28dfa-audit.json",
7
- "files": [
8
- {
9
- "date": 1708031778058,
10
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-15.log",
11
- "hash": "07532e7603268809e06ca6c5a3157f95"
12
- },
13
- {
14
- "date": 1708369794950,
15
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-19.log",
16
- "hash": "bf39dc72fcec172864c164cf355008c3"
17
- },
18
- {
19
- "date": 1708589671798,
20
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-22.log",
21
- "hash": "9c67450d70a05cf38c86a324a06a0bae"
22
- },
23
- {
24
- "date": 1708729198685,
25
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-23.log",
26
- "hash": "fcc68deaede843fa3054da7015219c86"
27
- },
28
- {
29
- "date": 1708979065434,
30
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-26.log",
31
- "hash": "2f802970076a00366648363c19b8b75a"
32
- },
33
- {
34
- "date": 1709043115268,
35
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-27.log",
36
- "hash": "efbf115b440548473f8e3c62c80e2f4a"
37
- },
38
- {
39
- "date": 1709156035546,
40
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-28.log",
41
- "hash": "fc37ffff09dc4e1e2af0b1d0a3c5767e"
42
- },
43
- {
44
- "date": 1709222274317,
45
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/keplerCliNative-2024-02-29.log",
46
- "hash": "546199186d8c0087b39f1ddc2e84a088"
47
- }
48
- ]
49
- }
@@ -1,49 +0,0 @@
1
- {
2
- "keep": {
3
- "days": true,
4
- "amount": 14
5
- },
6
- "auditLog": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/.c366df74eeb671df60a57a2075ae40a3dae2af25-audit.json",
7
- "files": [
8
- {
9
- "date": 1708031778055,
10
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-15.log",
11
- "hash": "92605562f5e88770140230df60700c47"
12
- },
13
- {
14
- "date": 1708369794945,
15
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-19.log",
16
- "hash": "80e6705fde5119423369ea171056ddf3"
17
- },
18
- {
19
- "date": 1708589671787,
20
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-22.log",
21
- "hash": "2b9570aca1dd8ae427021daf1ddb8c3b"
22
- },
23
- {
24
- "date": 1708729198682,
25
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-23.log",
26
- "hash": "c7c592d1ecfa32a939af0e02fb99bbe7"
27
- },
28
- {
29
- "date": 1708979065426,
30
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-26.log",
31
- "hash": "361e8d392ab3d6e7fe811fb693fae7ba"
32
- },
33
- {
34
- "date": 1709043115264,
35
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-27.log",
36
- "hash": "5bee5e0250e1176ab4c6a71041229054"
37
- },
38
- {
39
- "date": 1709156035378,
40
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-28.log",
41
- "hash": "079504a72e47e4ee908d8bb2c4f5debb"
42
- },
43
- {
44
- "date": 1709222274311,
45
- "name": "/Users/zihejia/Documents/Projects/Develop/mixpanel-react-native-original/logs/error-2024-02-29.log",
46
- "hash": "084013dcbe1040f480161dba82d9e9c5"
47
- }
48
- ]
49
- }