@blaze-cms/nextjs-tools 0.124.0-alpha.7 → 0.124.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.
Files changed (85) hide show
  1. package/CHANGELOG.md +294 -0
  2. package/lib/application/query/index.js +2 -2
  3. package/lib/application/query/index.js.map +1 -1
  4. package/lib/blaze.config.js.map +1 -1
  5. package/lib/components/DebugSidebar/index.js +3 -3
  6. package/lib/components/DebugSidebar/index.js.map +1 -1
  7. package/lib/components/index.js.map +1 -1
  8. package/lib/constants.js.map +1 -1
  9. package/lib/containers/ContentContainer.js.map +1 -1
  10. package/lib/containers/index.js.map +1 -1
  11. package/lib/helpers/build-admin-href.js.map +1 -1
  12. package/lib/helpers/check-for-gtm.js.map +1 -1
  13. package/lib/helpers/check-parent.js.map +1 -1
  14. package/lib/helpers/check-preview-url.js.map +1 -1
  15. package/lib/helpers/check-url.js +20 -14
  16. package/lib/helpers/check-url.js.map +1 -1
  17. package/lib/helpers/get-entitys-actions.js.map +1 -1
  18. package/lib/helpers/get-error-message.js.map +1 -1
  19. package/lib/helpers/get-page-data.js.map +1 -1
  20. package/lib/helpers/get-root-selector-classes.js.map +1 -1
  21. package/lib/helpers/get-search-filter.js.map +1 -1
  22. package/lib/helpers/handle-static-routes.js.map +1 -1
  23. package/lib/helpers/index.js.map +1 -1
  24. package/lib/helpers/render-apple-tags.js.map +1 -1
  25. package/lib/helpers/set-blaze-debug.js.map +1 -1
  26. package/lib/helpers/static-route-handlers/generic-file-handler.js.map +1 -1
  27. package/lib/helpers/static-route-handlers/index.js.map +1 -1
  28. package/lib/helpers/static-route-handlers/robots-txt.js.map +1 -1
  29. package/lib/helpers/static-route-handlers/sitemap-file.js.map +1 -1
  30. package/lib/helpers/static-route-handlers/sitemap.js.map +1 -1
  31. package/lib/hoc/withBlaze.js +3 -3
  32. package/lib/hoc/withBlaze.js.map +1 -1
  33. package/lib/hooks/use-get-page.js.map +1 -1
  34. package/lib/index.js.map +1 -1
  35. package/lib/pages/Resolver.js.map +1 -1
  36. package/lib/pages/document/DocumentBody.js.map +1 -1
  37. package/lib/pages/document/_document.js.map +1 -1
  38. package/lib/server/index.js.map +1 -1
  39. package/lib/server/routes.js.map +1 -1
  40. package/lib-es/application/query/index.js +3 -2
  41. package/lib-es/application/query/index.js.map +1 -1
  42. package/lib-es/blaze.config.js.map +1 -1
  43. package/lib-es/components/DebugSidebar/index.js +2 -3
  44. package/lib-es/components/DebugSidebar/index.js.map +1 -1
  45. package/lib-es/components/index.js.map +1 -1
  46. package/lib-es/constants.js.map +1 -1
  47. package/lib-es/containers/ContentContainer.js.map +1 -1
  48. package/lib-es/containers/index.js.map +1 -1
  49. package/lib-es/helpers/build-admin-href.js.map +1 -1
  50. package/lib-es/helpers/check-for-gtm.js.map +1 -1
  51. package/lib-es/helpers/check-parent.js.map +1 -1
  52. package/lib-es/helpers/check-preview-url.js.map +1 -1
  53. package/lib-es/helpers/check-url.js +10 -3
  54. package/lib-es/helpers/check-url.js.map +1 -1
  55. package/lib-es/helpers/get-entitys-actions.js.map +1 -1
  56. package/lib-es/helpers/get-error-message.js.map +1 -1
  57. package/lib-es/helpers/get-page-data.js.map +1 -1
  58. package/lib-es/helpers/get-root-selector-classes.js.map +1 -1
  59. package/lib-es/helpers/get-search-filter.js.map +1 -1
  60. package/lib-es/helpers/handle-static-routes.js.map +1 -1
  61. package/lib-es/helpers/index.js.map +1 -1
  62. package/lib-es/helpers/render-apple-tags.js.map +1 -1
  63. package/lib-es/helpers/set-blaze-debug.js.map +1 -1
  64. package/lib-es/helpers/static-route-handlers/generic-file-handler.js.map +1 -1
  65. package/lib-es/helpers/static-route-handlers/index.js.map +1 -1
  66. package/lib-es/helpers/static-route-handlers/robots-txt.js.map +1 -1
  67. package/lib-es/helpers/static-route-handlers/sitemap-file.js.map +1 -1
  68. package/lib-es/helpers/static-route-handlers/sitemap.js.map +1 -1
  69. package/lib-es/hoc/withBlaze.js +3 -3
  70. package/lib-es/hoc/withBlaze.js.map +1 -1
  71. package/lib-es/hooks/use-get-page.js.map +1 -1
  72. package/lib-es/index.js.map +1 -1
  73. package/lib-es/pages/Resolver.js.map +1 -1
  74. package/lib-es/pages/document/DocumentBody.js.map +1 -1
  75. package/lib-es/pages/document/_document.js.map +1 -1
  76. package/lib-es/server/index.js.map +1 -1
  77. package/lib-es/server/routes.js.map +1 -1
  78. package/package.json +9 -9
  79. package/src/application/query/index.js +3 -2
  80. package/src/components/DebugSidebar/index.js +4 -1
  81. package/src/helpers/check-url.js +9 -5
  82. package/tests/unit/src/application/query/__snapshots__/index.test.js.snap +800 -0
  83. package/tests/unit/src/application/query/index.test.js +19 -0
  84. package/tests/unit/src/components/DebugSidebar/__snapshots__/DebugSidebar.test.js.snap +18 -4
  85. package/tests/unit/src/helpers/check-url.test.js +47 -4
@@ -0,0 +1,19 @@
1
+ const {
2
+ checkUrlQuery,
3
+ getPageQuery,
4
+ GET_ENTITY_SCHEMA
5
+ } = require('../../../../../src/application/query');
6
+
7
+ describe('Application query', () => {
8
+ it('should get check url query', () => {
9
+ expect(checkUrlQuery).toMatchSnapshot();
10
+ });
11
+
12
+ it('should get page query', () => {
13
+ expect(getPageQuery({})).toMatchSnapshot();
14
+ });
15
+
16
+ it('should match get entity schema', () => {
17
+ expect(GET_ENTITY_SCHEMA).toMatchSnapshot();
18
+ });
19
+ });
@@ -23,10 +23,24 @@ exports[`DebugSidebar component should render without throwing error (isDebugMod
23
23
  id="debug-sidebar-button"
24
24
  role="button"
25
25
  >
26
- <i
27
- class="material-icons"
28
- >
29
- keyboard_arrow_left
26
+ <i>
27
+ <svg
28
+ fill="currentColor"
29
+ height="1em"
30
+ stroke="currentColor"
31
+ stroke-width="0"
32
+ viewBox="0 0 24 24"
33
+ width="1em"
34
+ xmlns="http://www.w3.org/2000/svg"
35
+ >
36
+ <path
37
+ d="M0 0h24v24H0V0z"
38
+ fill="none"
39
+ />
40
+ <path
41
+ d="M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
42
+ />
43
+ </svg>
30
44
  </i>
31
45
  </div>
32
46
  </div>
@@ -35,6 +35,7 @@ describe('Check url', () => {
35
35
  const itemId = 'RECORD_ID';
36
36
  const unpublishedItemEntity = 'page';
37
37
  const itemEntity = `published_${unpublishedItemEntity}`;
38
+ const rootPage = '/';
38
39
  const pageData = { pageData: true };
39
40
  const apolloClient = {
40
41
  query: jest.fn(async () => ({
@@ -74,6 +75,8 @@ describe('Check url', () => {
74
75
  const envs = {
75
76
  BLAZE_ROOT_SELECTOR_CLASSES_LIMIT: rootSelectorEnvValue
76
77
  };
78
+ const mockHandlerResponse = () => jest.fn(() => true);
79
+ const cacheControlHeader = 'Cache-Control';
77
80
 
78
81
  beforeAll(() => {
79
82
  setEnvs(envs);
@@ -105,7 +108,7 @@ describe('Check url', () => {
105
108
  });
106
109
 
107
110
  it('should handle static route', async () => {
108
- handleStaticRoutes.getHandler.mockImplementationOnce(() => jest.fn(() => true));
111
+ handleStaticRoutes.getHandler.mockImplementationOnce(mockHandlerResponse);
109
112
  const result = await checkUrl({ ...props, asPath: ROUTE_PATTERN_SITEMAP });
110
113
  expect(handleStaticRoutes.getHandler).toHaveBeenCalledWith(ROUTE_PATTERN_SITEMAP);
111
114
  expect(result).toEqual(true);
@@ -117,18 +120,20 @@ describe('Check url', () => {
117
120
  });
118
121
 
119
122
  it('should set empty Cache-Control header', async () => {
123
+ handleStaticRoutes.getHandler.mockImplementationOnce(mockHandlerResponse);
120
124
  await checkUrl(props);
121
- expect(res.setHeader).toHaveBeenCalledWith('Cache-Control', '');
125
+ expect(res.setHeader).toHaveBeenCalledWith(cacheControlHeader, '');
122
126
  });
123
127
 
124
128
  it('should set Cache-Control header from env', async () => {
129
+ handleStaticRoutes.getHandler.mockImplementationOnce(mockHandlerResponse);
125
130
  const cacheEnvs = {
126
131
  BLAZE_CACHE_CONTROL_HEADER: 'max-age=0'
127
132
  };
128
133
  setEnvs(cacheEnvs);
129
134
  await checkUrl(props);
130
135
  expect(res.setHeader).toHaveBeenCalledWith(
131
- 'Cache-Control',
136
+ cacheControlHeader,
132
137
  cacheEnvs.BLAZE_CACHE_CONTROL_HEADER
133
138
  );
134
139
  deleteEnvs(cacheEnvs);
@@ -197,7 +202,6 @@ describe('Check url', () => {
197
202
  err.networkError = {};
198
203
  throw err;
199
204
  });
200
- const rootPage = '/';
201
205
  await checkUrl({ ...props, asPath: rootPage });
202
206
  expect(res.writeHead).toHaveBeenCalledWith(500, { 'Content-Type': 'text/plain' });
203
207
  expect(res.write).toHaveBeenCalledWith('500 Internal Server Error\n');
@@ -205,6 +209,45 @@ describe('Check url', () => {
205
209
  expect(blazeApp.events.emit).toHaveBeenCalled();
206
210
  apolloQueryCheck(apolloClient, rootPage);
207
211
  });
212
+
213
+ it('should set max age in cache control header from entity', async () => {
214
+ const cacheControlMaxAge = 1000;
215
+ apolloClient.query.mockImplementationOnce(async () => ({
216
+ data: {
217
+ checkUrl: { urlTo, pageData: { cacheControlMaxAge } }
218
+ }
219
+ }));
220
+ await checkUrl(props);
221
+ expect(res.setHeader).toHaveBeenCalledWith(cacheControlHeader, `max-age=${cacheControlMaxAge}`);
222
+ });
223
+
224
+ it('should not set cache control header if cacheControlMaxAge=null', async () => {
225
+ const cacheControlMaxAge = null;
226
+ apolloClient.query.mockImplementationOnce(async () => ({
227
+ data: {
228
+ checkUrl: { urlTo, pageData: { cacheControlMaxAge } }
229
+ }
230
+ }));
231
+ await checkUrl(props);
232
+ expect(res.setHeader).not.toHaveBeenCalledWith(
233
+ cacheControlHeader,
234
+ `max-age=${cacheControlMaxAge}`
235
+ );
236
+ });
237
+
238
+ it('should not redirect to parent if urlTo is set and pageData is null', async () => {
239
+ apolloClient.query.mockImplementationOnce(async () => ({
240
+ data: {
241
+ checkUrl: { urlTo: rootPage, pageData: null }
242
+ }
243
+ }));
244
+ const customProps = {
245
+ ...props,
246
+ asPath: '/page1/page2'
247
+ };
248
+ await checkUrl(customProps);
249
+ expect(res.writeHead).toHaveBeenCalledWith(301, { Location: rootPage });
250
+ });
208
251
  });
209
252
 
210
253
  function apolloQueryCheck(apolloClient, asPath) {