musora-content-services 1.2.5 → 1.3.2

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.
Files changed (40) hide show
  1. package/.prettierignore +5 -0
  2. package/.prettierrc +8 -0
  3. package/.yarnrc.yml +1 -0
  4. package/CHANGELOG.md +11 -0
  5. package/README.md +0 -0
  6. package/babel.config.cjs +1 -1
  7. package/docs/config.js.html +0 -0
  8. package/docs/index.html +0 -0
  9. package/docs/module-Config.html +0 -0
  10. package/docs/module-Railcontent-Services.html +0 -0
  11. package/docs/module-Sanity-Services.html +0 -0
  12. package/docs/railcontent.js.html +0 -0
  13. package/docs/sanity.js.html +0 -0
  14. package/jest.config.js +9 -10
  15. package/jsdoc.json +17 -12
  16. package/package.json +2 -1
  17. package/src/contentMetaData.js +1190 -1131
  18. package/src/contentTypeConfig.js +492 -387
  19. package/src/filterBuilder.js +163 -145
  20. package/src/index.d.ts +227 -237
  21. package/src/index.js +226 -236
  22. package/src/services/config.js +12 -12
  23. package/src/services/contentLikes.js +33 -32
  24. package/src/services/contentProgress.js +233 -200
  25. package/src/services/dataContext.js +99 -93
  26. package/src/services/lastUpdated.js +7 -7
  27. package/src/services/railcontent.js +368 -364
  28. package/src/services/sanity.js +983 -955
  29. package/src/services/userPermissions.js +12 -14
  30. package/test/contentLikes.test.js +89 -86
  31. package/test/contentProgress.test.js +229 -236
  32. package/test/initializeTests.js +54 -51
  33. package/test/lastUpdated.test.js +20 -18
  34. package/test/live/contentProgressLive.test.js +135 -137
  35. package/test/live/railcontentLive.test.js +12 -14
  36. package/test/localStorageMock.js +16 -16
  37. package/test/log.js +5 -5
  38. package/test/sanityQueryService.test.js +857 -821
  39. package/test/userPermissions.test.js +15 -15
  40. package/tools/generate-index.cjs +108 -111
@@ -1,26 +1,24 @@
1
- import {
2
- fetchUserPermissionsData
3
- } from "./railcontent.js";
4
- import {setLastUpdatedTime, wasLastUpdateOlderThanXSeconds} from "./lastUpdated.js";
1
+ import { fetchUserPermissionsData } from './railcontent.js'
2
+ import { setLastUpdatedTime, wasLastUpdateOlderThanXSeconds } from './lastUpdated.js'
5
3
 
6
4
  /**
7
5
  * Exported functions that are excluded from index generation.
8
6
  *
9
7
  * @type {string[]}
10
8
  */
11
- const excludeFromGeneratedIndex = [];
12
- let userPermissionsPromise = null;
13
- let lastUpdatedKey = `userPermissions_lastUpdated`;
9
+ const excludeFromGeneratedIndex = []
10
+ let userPermissionsPromise = null
11
+ let lastUpdatedKey = `userPermissions_lastUpdated`
14
12
 
15
13
  export async function fetchUserPermissions() {
16
- if (!userPermissionsPromise || wasLastUpdateOlderThanXSeconds(10, lastUpdatedKey)) {
17
- userPermissionsPromise = fetchUserPermissionsData();
18
- setLastUpdatedTime(lastUpdatedKey);
19
- }
14
+ if (!userPermissionsPromise || wasLastUpdateOlderThanXSeconds(10, lastUpdatedKey)) {
15
+ userPermissionsPromise = fetchUserPermissionsData()
16
+ setLastUpdatedTime(lastUpdatedKey)
17
+ }
20
18
 
21
- return await userPermissionsPromise;
19
+ return await userPermissionsPromise
22
20
  }
23
21
 
24
22
  export async function reset() {
25
- userPermissionsPromise = null;
26
- }
23
+ userPermissionsPromise = null
24
+ }
@@ -1,90 +1,93 @@
1
- import {isContentLiked, dataContext, likeContent, unlikeContent} from "../src/services/contentLikes";
2
- import {initializeTestService} from "./initializeTests";
1
+ import {
2
+ isContentLiked,
3
+ dataContext,
4
+ likeContent,
5
+ unlikeContent,
6
+ } from '../src/services/contentLikes'
7
+ import { initializeTestService } from './initializeTests'
3
8
 
4
9
  const railContentModule = require('../src/services/railcontent.js')
5
10
 
6
11
  describe('contentLikesDataContext', function () {
7
- let mock = null;
8
- const testVersion = 1;
9
-
10
- beforeEach(() => {
11
- initializeTestService();
12
- mock = jest.spyOn(dataContext, 'fetchData');
13
- var json = JSON.parse(`{"version":${testVersion},"data":[308516,308515,308514,308518]}`);
14
- mock.mockImplementation(() => json);
15
- });
16
-
17
- test('contentLiked', async () => {
18
- let result = await isContentLiked(308516);
19
- expect(result).toBe(true);
20
- });
21
-
22
- test('contentLikedStringInput', async () => {
23
- let result = await isContentLiked("308516");
24
- expect(result).toBe(true);
25
- });
26
-
27
- test('contentNotLiked', async () => {
28
- let result = await isContentLiked(121111);
29
- expect(result).toBe(false);
30
- });
31
-
32
- test('ensureOnlyOneServerFetchRequest', async () => {
33
- dataContext.clearCache();
34
- await isContentLiked(308516);
35
- await isContentLiked(308514);
36
- await isContentLiked(121111);
37
- expect(dataContext.fetchData).toHaveBeenCalledTimes(1);
38
- });
39
-
40
- test('ensureDataPulledFromLocalCache', async () => {
41
- dataContext.clearCache();
42
- await isContentLiked(308516);
43
- dataContext.clearContext();
44
- await isContentLiked(308514);
45
- expect(dataContext.fetchData).toHaveBeenCalledTimes(1);
46
- });
47
-
48
- test('likeContent', async () => {
49
- mock = jest.spyOn(railContentModule, 'postContentLiked');
50
- var json = JSON.parse(`{"version":${testVersion + 1}}`);
51
- mock.mockImplementation(() => json);
52
-
53
- dataContext.clearCache();
54
- let isLiked = await isContentLiked(111111);
55
- expect(isLiked).toBe(false);
56
-
57
- await likeContent(111111);
58
- isLiked = await isContentLiked(111111);
59
- expect(isLiked).toBe(true);
60
-
61
- dataContext.clearContext();
62
- isLiked = await isContentLiked(111111);
63
- expect(isLiked).toBe(true);
64
-
65
- expect(dataContext.version()).toBe(testVersion + 1);
66
- });
67
-
68
-
69
- test('unlikeContent', async () => {
70
- mock = jest.spyOn(railContentModule, 'postContentUnliked');
71
- var json = JSON.parse(`{"version":${testVersion + 1}}`);
72
- mock.mockImplementation(() => json);
73
-
74
- dataContext.clearCache();
75
- let isLiked = await isContentLiked(308516);
76
- expect(isLiked).toBe(true);
77
-
78
- await unlikeContent(308516);
79
- console.log(dataContext.context);
80
- isLiked = await isContentLiked(308516);
81
- expect(isLiked).toBe(false);
82
-
83
- dataContext.clearContext();
84
- isLiked = await isContentLiked(308516);
85
- expect(isLiked).toBe(false);
86
-
87
- expect(dataContext.version()).toBe(testVersion + 1);
88
- });
89
-
90
- });
12
+ let mock = null
13
+ const testVersion = 1
14
+
15
+ beforeEach(() => {
16
+ initializeTestService()
17
+ mock = jest.spyOn(dataContext, 'fetchData')
18
+ var json = JSON.parse(`{"version":${testVersion},"data":[308516,308515,308514,308518]}`)
19
+ mock.mockImplementation(() => json)
20
+ })
21
+
22
+ test('contentLiked', async () => {
23
+ let result = await isContentLiked(308516)
24
+ expect(result).toBe(true)
25
+ })
26
+
27
+ test('contentLikedStringInput', async () => {
28
+ let result = await isContentLiked('308516')
29
+ expect(result).toBe(true)
30
+ })
31
+
32
+ test('contentNotLiked', async () => {
33
+ let result = await isContentLiked(121111)
34
+ expect(result).toBe(false)
35
+ })
36
+
37
+ test('ensureOnlyOneServerFetchRequest', async () => {
38
+ dataContext.clearCache()
39
+ await isContentLiked(308516)
40
+ await isContentLiked(308514)
41
+ await isContentLiked(121111)
42
+ expect(dataContext.fetchData).toHaveBeenCalledTimes(1)
43
+ })
44
+
45
+ test('ensureDataPulledFromLocalCache', async () => {
46
+ dataContext.clearCache()
47
+ await isContentLiked(308516)
48
+ dataContext.clearContext()
49
+ await isContentLiked(308514)
50
+ expect(dataContext.fetchData).toHaveBeenCalledTimes(1)
51
+ })
52
+
53
+ test('likeContent', async () => {
54
+ mock = jest.spyOn(railContentModule, 'postContentLiked')
55
+ var json = JSON.parse(`{"version":${testVersion + 1}}`)
56
+ mock.mockImplementation(() => json)
57
+
58
+ dataContext.clearCache()
59
+ let isLiked = await isContentLiked(111111)
60
+ expect(isLiked).toBe(false)
61
+
62
+ await likeContent(111111)
63
+ isLiked = await isContentLiked(111111)
64
+ expect(isLiked).toBe(true)
65
+
66
+ dataContext.clearContext()
67
+ isLiked = await isContentLiked(111111)
68
+ expect(isLiked).toBe(true)
69
+
70
+ expect(dataContext.version()).toBe(testVersion + 1)
71
+ })
72
+
73
+ test('unlikeContent', async () => {
74
+ mock = jest.spyOn(railContentModule, 'postContentUnliked')
75
+ var json = JSON.parse(`{"version":${testVersion + 1}}`)
76
+ mock.mockImplementation(() => json)
77
+
78
+ dataContext.clearCache()
79
+ let isLiked = await isContentLiked(308516)
80
+ expect(isLiked).toBe(true)
81
+
82
+ await unlikeContent(308516)
83
+ console.log(dataContext.context)
84
+ isLiked = await isContentLiked(308516)
85
+ expect(isLiked).toBe(false)
86
+
87
+ dataContext.clearContext()
88
+ isLiked = await isContentLiked(308516)
89
+ expect(isLiked).toBe(false)
90
+
91
+ expect(dataContext.version()).toBe(testVersion + 1)
92
+ })
93
+ })