@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.
- package/CHANGELOG.md +294 -0
- package/lib/application/query/index.js +2 -2
- package/lib/application/query/index.js.map +1 -1
- package/lib/blaze.config.js.map +1 -1
- package/lib/components/DebugSidebar/index.js +3 -3
- package/lib/components/DebugSidebar/index.js.map +1 -1
- package/lib/components/index.js.map +1 -1
- package/lib/constants.js.map +1 -1
- package/lib/containers/ContentContainer.js.map +1 -1
- package/lib/containers/index.js.map +1 -1
- package/lib/helpers/build-admin-href.js.map +1 -1
- package/lib/helpers/check-for-gtm.js.map +1 -1
- package/lib/helpers/check-parent.js.map +1 -1
- package/lib/helpers/check-preview-url.js.map +1 -1
- package/lib/helpers/check-url.js +20 -14
- package/lib/helpers/check-url.js.map +1 -1
- package/lib/helpers/get-entitys-actions.js.map +1 -1
- package/lib/helpers/get-error-message.js.map +1 -1
- package/lib/helpers/get-page-data.js.map +1 -1
- package/lib/helpers/get-root-selector-classes.js.map +1 -1
- package/lib/helpers/get-search-filter.js.map +1 -1
- package/lib/helpers/handle-static-routes.js.map +1 -1
- package/lib/helpers/index.js.map +1 -1
- package/lib/helpers/render-apple-tags.js.map +1 -1
- package/lib/helpers/set-blaze-debug.js.map +1 -1
- package/lib/helpers/static-route-handlers/generic-file-handler.js.map +1 -1
- package/lib/helpers/static-route-handlers/index.js.map +1 -1
- package/lib/helpers/static-route-handlers/robots-txt.js.map +1 -1
- package/lib/helpers/static-route-handlers/sitemap-file.js.map +1 -1
- package/lib/helpers/static-route-handlers/sitemap.js.map +1 -1
- package/lib/hoc/withBlaze.js +3 -3
- package/lib/hoc/withBlaze.js.map +1 -1
- package/lib/hooks/use-get-page.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/pages/Resolver.js.map +1 -1
- package/lib/pages/document/DocumentBody.js.map +1 -1
- package/lib/pages/document/_document.js.map +1 -1
- package/lib/server/index.js.map +1 -1
- package/lib/server/routes.js.map +1 -1
- package/lib-es/application/query/index.js +3 -2
- package/lib-es/application/query/index.js.map +1 -1
- package/lib-es/blaze.config.js.map +1 -1
- package/lib-es/components/DebugSidebar/index.js +2 -3
- package/lib-es/components/DebugSidebar/index.js.map +1 -1
- package/lib-es/components/index.js.map +1 -1
- package/lib-es/constants.js.map +1 -1
- package/lib-es/containers/ContentContainer.js.map +1 -1
- package/lib-es/containers/index.js.map +1 -1
- package/lib-es/helpers/build-admin-href.js.map +1 -1
- package/lib-es/helpers/check-for-gtm.js.map +1 -1
- package/lib-es/helpers/check-parent.js.map +1 -1
- package/lib-es/helpers/check-preview-url.js.map +1 -1
- package/lib-es/helpers/check-url.js +10 -3
- package/lib-es/helpers/check-url.js.map +1 -1
- package/lib-es/helpers/get-entitys-actions.js.map +1 -1
- package/lib-es/helpers/get-error-message.js.map +1 -1
- package/lib-es/helpers/get-page-data.js.map +1 -1
- package/lib-es/helpers/get-root-selector-classes.js.map +1 -1
- package/lib-es/helpers/get-search-filter.js.map +1 -1
- package/lib-es/helpers/handle-static-routes.js.map +1 -1
- package/lib-es/helpers/index.js.map +1 -1
- package/lib-es/helpers/render-apple-tags.js.map +1 -1
- package/lib-es/helpers/set-blaze-debug.js.map +1 -1
- package/lib-es/helpers/static-route-handlers/generic-file-handler.js.map +1 -1
- package/lib-es/helpers/static-route-handlers/index.js.map +1 -1
- package/lib-es/helpers/static-route-handlers/robots-txt.js.map +1 -1
- package/lib-es/helpers/static-route-handlers/sitemap-file.js.map +1 -1
- package/lib-es/helpers/static-route-handlers/sitemap.js.map +1 -1
- package/lib-es/hoc/withBlaze.js +3 -3
- package/lib-es/hoc/withBlaze.js.map +1 -1
- package/lib-es/hooks/use-get-page.js.map +1 -1
- package/lib-es/index.js.map +1 -1
- package/lib-es/pages/Resolver.js.map +1 -1
- package/lib-es/pages/document/DocumentBody.js.map +1 -1
- package/lib-es/pages/document/_document.js.map +1 -1
- package/lib-es/server/index.js.map +1 -1
- package/lib-es/server/routes.js.map +1 -1
- package/package.json +9 -9
- package/src/application/query/index.js +3 -2
- package/src/components/DebugSidebar/index.js +4 -1
- package/src/helpers/check-url.js +9 -5
- package/tests/unit/src/application/query/__snapshots__/index.test.js.snap +800 -0
- package/tests/unit/src/application/query/index.test.js +19 -0
- package/tests/unit/src/components/DebugSidebar/__snapshots__/DebugSidebar.test.js.snap +18 -4
- 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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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) {
|