@raketa-cloud/admin 0.0.15 → 0.0.17
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/package.json +1 -1
- package/src/Adapter.js +4 -4
- package/src/HonoAdapter.js +13 -19
- package/src/cloud/Articles.js +9 -5
- package/src/cloud/EventChanges.js +15 -0
- package/src/cloud/EventRevisions.js +149 -0
- package/src/cloud/Events.js +139 -0
- package/src/cloud/Pages.js +9 -5
- package/src/cloud/documents/common.js +10 -0
- package/src/cloud/documents/eventsDocuments.js +254 -0
- package/src/handlers/article_revisions/ArticleRevisionsHandler.js +4 -4
- package/src/handlers/article_revisions/CodeHandler.js +2 -2
- package/src/handlers/article_revisions/GeneralHandler.js +2 -2
- package/src/handlers/article_revisions/LocksHandler.js +2 -2
- package/src/handlers/article_revisions/MetaHandler.js +2 -2
- package/src/handlers/article_revisions/PublishesHandler.js +2 -2
- package/src/handlers/article_revisions/RevertsHandler.js +2 -2
- package/src/handlers/article_revisions/TagHandler.js +2 -2
- package/src/handlers/article_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/article_revisions/VisualHandler.js +2 -2
- package/src/handlers/articles/ArticlesHandler.js +20 -16
- package/src/handlers/articles/ClonesHandler.js +5 -3
- package/src/handlers/articles/DeletesHandler.js +5 -5
- package/src/handlers/articles/TranslationsHandler.js +25 -22
- package/src/handlers/articles/URLsHandler.js +6 -6
- package/src/handlers/event_revisions/CodeHandler.js +86 -0
- package/src/handlers/event_revisions/EventRevisionsHandler.js +47 -0
- package/src/handlers/event_revisions/GeneralHandler.js +94 -0
- package/src/handlers/event_revisions/LocksHandler.js +51 -0
- package/src/handlers/event_revisions/MetaHandler.js +86 -0
- package/src/handlers/event_revisions/PublishesHandler.js +84 -0
- package/src/handlers/event_revisions/RevertsHandler.js +26 -0
- package/src/handlers/event_revisions/TagHandler.js +85 -0
- package/src/handlers/event_revisions/UnlocksHandler.js +22 -0
- package/src/handlers/event_revisions/VisualHandler.js +80 -0
- package/src/handlers/event_revisions/WidgetHandler.js +41 -0
- package/src/handlers/events/ClonesHandler.js +19 -0
- package/src/handlers/events/DeletesHandler.js +68 -0
- package/src/handlers/events/EventsHandler.js +125 -0
- package/src/handlers/events/TranslationsHandler.js +107 -0
- package/src/handlers/events/URLsHandler.js +71 -0
- package/src/handlers/page_revisions/CodeHandler.js +2 -2
- package/src/handlers/page_revisions/GeneralHandler.js +2 -2
- package/src/handlers/page_revisions/LocksHandler.js +2 -2
- package/src/handlers/page_revisions/MetaHandler.js +2 -2
- package/src/handlers/page_revisions/PageRevisionsHandler.js +4 -4
- package/src/handlers/page_revisions/PublishesHandler.js +2 -2
- package/src/handlers/page_revisions/RevertsHandler.js +2 -2
- package/src/handlers/page_revisions/TagHandler.js +2 -2
- package/src/handlers/page_revisions/UnlocksHandler.js +2 -2
- package/src/handlers/page_revisions/VisualHandler.js +2 -2
- package/src/handlers/pages/ClonesHandler.js +5 -3
- package/src/handlers/pages/DeletesHandler.js +5 -5
- package/src/handlers/pages/PagesHandler.js +21 -16
- package/src/handlers/pages/TranslationsHandler.js +24 -22
- package/src/handlers/pages/URLsHandler.js +6 -6
- package/src/index.js +24 -2
- package/src/routeArticlesModule.js +142 -0
- package/src/routeCollection.js +2 -2
- package/src/routeEventsModule.js +142 -0
- package/src/routeMember.js +2 -2
- package/src/routeNestedCollection.js +8 -2
- package/src/routeNestedMember.js +8 -2
- package/src/routePagesModule.js +155 -0
- package/src/routeStandard.js +6 -4
- package/src/setupCloud.js +12 -0
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +84 -0
- package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +59 -0
- package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +56 -0
- package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +148 -0
- package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +65 -0
- package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +159 -0
- package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +57 -0
- package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +152 -0
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +142 -0
- package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +47 -0
- package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +89 -0
- package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +152 -0
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
- package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +140 -0
- package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +46 -0
- package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +103 -0
- package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +5 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +9 -2
- package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/articles/{ConesHandler.test → ClonesHandler.test}/create.test.js +8 -2
- package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +12 -3
- package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/articles/URLsHandler.test/create.test.js +18 -6
- package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +56 -0
- package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +152 -0
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +84 -0
- package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +59 -0
- package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +167 -0
- package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +57 -0
- package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +156 -0
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +142 -0
- package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +47 -0
- package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +89 -0
- package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +69 -0
- package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +156 -0
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
- package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +144 -0
- package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +46 -0
- package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +103 -0
- package/src/tests/handlers/events/ClonesHandler.test/create.test.js +60 -0
- package/src/tests/handlers/events/DeletesHandler.test/create.test.js +119 -0
- package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +60 -0
- package/src/tests/handlers/events/EventsHandler.test/create.test.js +158 -0
- package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +44 -0
- package/src/tests/handlers/events/EventsHandler.test/index.test.js +52 -0
- package/src/tests/handlers/events/EventsHandler.test/show.test.js +111 -0
- package/src/tests/handlers/events/URLsHandler.test/create.test.js +167 -0
- package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +57 -0
- package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +8 -2
- package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +12 -3
- package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +8 -2
- package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +12 -3
- package/src/tests/handlers/pages/ConesHandler.test/create.test.js +8 -2
- package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +12 -3
- package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +8 -2
- package/src/tests/handlers/pages/PagesHandler.test/create.test.js +11 -5
- package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +1 -1
- package/src/tests/handlers/pages/PagesHandler.test/index.test.js +5 -2
- package/src/tests/handlers/pages/PagesHandler.test/show.test.js +9 -3
- package/src/tests/handlers/pages/URLsHandler.test/create.test.js +16 -4
- package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +8 -2
- package/src/tests/routeCollection.test.js +118 -105
- package/src/tests/routeMember.test.js +60 -54
- package/src/tests/routeNestedCollection.test.js +132 -126
- package/src/tests/routeNestedMember.test.js +60 -54
- package/src/views/articles/_form.ejs +17 -17
- package/src/views/articles/show.ejs +9 -9
- package/src/views/articles/translations/_form.ejs +3 -3
- package/src/views/articles/translations/create_form.ejs +7 -9
- package/src/views/event_revisions/_nav.ejs +40 -0
- package/src/views/event_revisions/codes/edit_form.ejs +39 -0
- package/src/views/event_revisions/general/edit_form.ejs +72 -0
- package/src/views/event_revisions/locks/create_form.ejs +35 -0
- package/src/views/event_revisions/meta/edit_form.ejs +41 -0
- package/src/views/event_revisions/publishes/_form.ejs +57 -0
- package/src/views/event_revisions/publishes/create_form.ejs +10 -0
- package/src/views/event_revisions/tags/edit_form.ejs +64 -0
- package/src/views/event_revisions/visuals/edit_form.ejs +42 -0
- package/src/views/events/_form.ejs +88 -0
- package/src/views/events/create_form.ejs +9 -0
- package/src/views/events/deletes/create_form.ejs +55 -0
- package/src/views/events/edit_form.ejs +3 -0
- package/src/views/events/index.ejs +161 -0
- package/src/views/events/show.ejs +281 -0
- package/src/views/events/translations/_form.ejs +79 -0
- package/src/views/events/translations/create_form.ejs +10 -0
- package/src/views/events/urls/create_form.ejs +31 -0
- package/src/views/pages/_form.ejs +16 -16
- package/src/views/pages/create_form.ejs +1 -1
- package/src/views/pages/show.ejs +9 -9
- package/src/views/pages/translations/_form.ejs +3 -3
- package/src/views/pages/translations/create_form.ejs +7 -9
- package/test/factory.js +42 -3
- package/src/routeArticles.js +0 -65
- package/src/routePages.js +0 -55
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import URLsHandler from "../../../../handlers/events/URLsHandler";
|
|
2
|
+
import Events from "../../../../cloud/Events";
|
|
3
|
+
import Factory from "../../../../../test/factory";
|
|
4
|
+
import { testConfig } from "../../../../../test/handlersHelper";
|
|
5
|
+
|
|
6
|
+
function buildCtx(event, updateSettings) {
|
|
7
|
+
return {
|
|
8
|
+
client: {
|
|
9
|
+
events: new Events(testConfig, "token"),
|
|
10
|
+
},
|
|
11
|
+
params: { parent_id: event.id },
|
|
12
|
+
resourceParams: {
|
|
13
|
+
change: updateSettings,
|
|
14
|
+
},
|
|
15
|
+
locale: "en",
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
describe("Event change url", () => {
|
|
20
|
+
test("create successful", async () => {
|
|
21
|
+
const event = Factory.build("event");
|
|
22
|
+
const updateSettings = {
|
|
23
|
+
slug: "new-slug",
|
|
24
|
+
redirect: "1",
|
|
25
|
+
};
|
|
26
|
+
const ctx = buildCtx(event, updateSettings);
|
|
27
|
+
|
|
28
|
+
const mockFind = jest
|
|
29
|
+
.spyOn(ctx.client.events, "find")
|
|
30
|
+
.mockImplementation(() => event);
|
|
31
|
+
|
|
32
|
+
const mockChange = jest
|
|
33
|
+
.spyOn(ctx.client.events, "updateSlug")
|
|
34
|
+
.mockImplementation(() => ({ event, errors: null }));
|
|
35
|
+
|
|
36
|
+
const result = await URLsHandler.create(ctx, {
|
|
37
|
+
eventType: "event",
|
|
38
|
+
eventTypePlural: "events",
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
expect(mockFind).toHaveBeenCalledWith(event.id, "en");
|
|
42
|
+
expect(mockChange).toHaveBeenCalledWith(
|
|
43
|
+
event.id,
|
|
44
|
+
updateSettings.slug,
|
|
45
|
+
"en",
|
|
46
|
+
{
|
|
47
|
+
url: `/${event.slug}`,
|
|
48
|
+
destination: updateSettings.slug,
|
|
49
|
+
httpResponseCode: 301,
|
|
50
|
+
note: "Created with changed URL for a resource of type event",
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
expect(result).toEqual({
|
|
55
|
+
redirect: `/en/events/${event.id}`,
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test("create failed due to slug error", async () => {
|
|
60
|
+
const event = Factory.build("event");
|
|
61
|
+
const updateSettings = {
|
|
62
|
+
slug: "new-slug",
|
|
63
|
+
};
|
|
64
|
+
const ctx = buildCtx(event, updateSettings);
|
|
65
|
+
|
|
66
|
+
const mockFind = jest
|
|
67
|
+
.spyOn(ctx.client.events, "find")
|
|
68
|
+
.mockImplementation(() => event);
|
|
69
|
+
|
|
70
|
+
const mockChange = jest
|
|
71
|
+
.spyOn(ctx.client.events, "updateSlug")
|
|
72
|
+
.mockImplementation(() => ({
|
|
73
|
+
event: null,
|
|
74
|
+
errors: [{ codes: [], key: "slug", message: "has already been taken" }],
|
|
75
|
+
}));
|
|
76
|
+
|
|
77
|
+
const result = await URLsHandler.create(ctx, {
|
|
78
|
+
eventType: "event",
|
|
79
|
+
eventTypePlural: "events",
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
expect(mockFind).toHaveBeenCalledWith(event.id, "en");
|
|
83
|
+
expect(mockChange).toHaveBeenCalledWith(
|
|
84
|
+
event.id,
|
|
85
|
+
updateSettings.slug,
|
|
86
|
+
"en",
|
|
87
|
+
null
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
expect(result).toEqual({
|
|
91
|
+
assigns: {
|
|
92
|
+
change: { ...updateSettings, id: event.id },
|
|
93
|
+
errors: { change: { slug: "has already been taken" } },
|
|
94
|
+
_translations: [],
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
test("create failed due to redirect create", async () => {
|
|
100
|
+
const event = Factory.build("event");
|
|
101
|
+
const updateSettings = {
|
|
102
|
+
slug: "new-slug",
|
|
103
|
+
redirect: "1",
|
|
104
|
+
};
|
|
105
|
+
const ctx = buildCtx(event, updateSettings);
|
|
106
|
+
|
|
107
|
+
const mockFind = jest
|
|
108
|
+
.spyOn(ctx.client.events, "find")
|
|
109
|
+
.mockImplementation(() => event);
|
|
110
|
+
|
|
111
|
+
const mockChange = jest
|
|
112
|
+
.spyOn(ctx.client.events, "updateSlug")
|
|
113
|
+
.mockImplementation(() => ({
|
|
114
|
+
event: null,
|
|
115
|
+
errors: [
|
|
116
|
+
{
|
|
117
|
+
codes: [],
|
|
118
|
+
key: "generalError",
|
|
119
|
+
message: "url: has already been taken",
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
}));
|
|
123
|
+
|
|
124
|
+
const result = await URLsHandler.create(ctx, {
|
|
125
|
+
eventType: "event",
|
|
126
|
+
eventTypePlural: "events",
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
expect(mockFind).toHaveBeenCalledWith(event.id, "en");
|
|
130
|
+
expect(mockChange).toHaveBeenCalledWith(
|
|
131
|
+
event.id,
|
|
132
|
+
updateSettings.slug,
|
|
133
|
+
"en",
|
|
134
|
+
{
|
|
135
|
+
url: `/${event.slug}`,
|
|
136
|
+
destination: updateSettings.slug,
|
|
137
|
+
httpResponseCode: 301,
|
|
138
|
+
note: "Created with changed URL for a resource of type event",
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
expect(result).toEqual({
|
|
143
|
+
assigns: {
|
|
144
|
+
change: { ...updateSettings, id: event.id },
|
|
145
|
+
errors: { change: { redirect: "url: has already been taken" } },
|
|
146
|
+
_translations: [],
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
test("create for non existing event", async () => {
|
|
152
|
+
const ctx = buildCtx({ id: "42" }, {});
|
|
153
|
+
|
|
154
|
+
const mockFind = jest
|
|
155
|
+
.spyOn(ctx.client.events, "find")
|
|
156
|
+
.mockImplementation(() => null);
|
|
157
|
+
|
|
158
|
+
expect(async () => {
|
|
159
|
+
await URLsHandler.create(ctx, {
|
|
160
|
+
eventType: "event",
|
|
161
|
+
eventTypePlural: "events",
|
|
162
|
+
});
|
|
163
|
+
}).rejects.toThrow("Cannot find event with id 42");
|
|
164
|
+
|
|
165
|
+
expect(mockFind).toHaveBeenCalledWith("42", "en");
|
|
166
|
+
});
|
|
167
|
+
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import URLsHandler from "../../../../handlers/events/URLsHandler";
|
|
2
|
+
import Events from "../../../../cloud/Events";
|
|
3
|
+
import Factory from "../../../../../test/factory";
|
|
4
|
+
import { testConfig } from "../../../../../test/handlersHelper";
|
|
5
|
+
|
|
6
|
+
function buildCtx(event) {
|
|
7
|
+
return {
|
|
8
|
+
client: {
|
|
9
|
+
events: new Events(testConfig, "token"),
|
|
10
|
+
},
|
|
11
|
+
params: { parent_id: event.id },
|
|
12
|
+
locale: "en",
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
describe("Event change url", () => {
|
|
17
|
+
test("create_form for existing event", async () => {
|
|
18
|
+
const event = Factory.build("event");
|
|
19
|
+
const ctx = buildCtx(event);
|
|
20
|
+
|
|
21
|
+
const mockFind = jest
|
|
22
|
+
.spyOn(ctx.client.events, "find")
|
|
23
|
+
.mockImplementation(() => event);
|
|
24
|
+
|
|
25
|
+
const result = await URLsHandler.create_form(ctx, {
|
|
26
|
+
eventType: "event",
|
|
27
|
+
eventTypePlural: "events",
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
expect(mockFind).toHaveBeenCalledWith(event.id, "en");
|
|
31
|
+
|
|
32
|
+
expect(result).toEqual({
|
|
33
|
+
assigns: {
|
|
34
|
+
change: { slug: event.slug, id: event.id, redirect: null },
|
|
35
|
+
errors: {},
|
|
36
|
+
_translations: [],
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
test("create_form for non existing event", async () => {
|
|
42
|
+
const ctx = buildCtx({ id: "42" });
|
|
43
|
+
|
|
44
|
+
const mockFind = jest
|
|
45
|
+
.spyOn(ctx.client.events, "find")
|
|
46
|
+
.mockImplementation(() => null);
|
|
47
|
+
|
|
48
|
+
expect(async () => {
|
|
49
|
+
await URLsHandler.create_form(ctx, {
|
|
50
|
+
eventType: "event",
|
|
51
|
+
eventTypePlural: "events",
|
|
52
|
+
});
|
|
53
|
+
}).rejects.toThrow("Cannot find event with id 42");
|
|
54
|
+
|
|
55
|
+
expect(mockFind).toHaveBeenCalledWith("42", "en");
|
|
56
|
+
});
|
|
57
|
+
});
|
|
@@ -38,7 +38,10 @@ describe("Page revision code settings", () => {
|
|
|
38
38
|
errors: null,
|
|
39
39
|
}));
|
|
40
40
|
|
|
41
|
-
const result = await CodeHandler.update(ctx
|
|
41
|
+
const result = await CodeHandler.update(ctx, {
|
|
42
|
+
pageType: "page",
|
|
43
|
+
pageTypePlural: "pages",
|
|
44
|
+
});
|
|
42
45
|
|
|
43
46
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
44
47
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -83,7 +86,10 @@ describe("Page revision code settings", () => {
|
|
|
83
86
|
errors: [{ key: "generalError", message: "some error" }],
|
|
84
87
|
}));
|
|
85
88
|
|
|
86
|
-
const result = await CodeHandler.update(ctx
|
|
89
|
+
const result = await CodeHandler.update(ctx, {
|
|
90
|
+
pageType: "page",
|
|
91
|
+
pageTypePlural: "pages",
|
|
92
|
+
});
|
|
87
93
|
|
|
88
94
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
89
95
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -129,7 +135,10 @@ describe("Page revision code settings", () => {
|
|
|
129
135
|
.mockImplementation(() => null);
|
|
130
136
|
|
|
131
137
|
expect(async () => {
|
|
132
|
-
await CodeHandler.update(ctx
|
|
138
|
+
await CodeHandler.update(ctx, {
|
|
139
|
+
pageType: "page",
|
|
140
|
+
pageTypePlural: "pages",
|
|
141
|
+
});
|
|
133
142
|
}).rejects.toThrow(`Missing revision #${revision.id}`);
|
|
134
143
|
|
|
135
144
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
@@ -43,7 +43,10 @@ describe("Page revision general settings", () => {
|
|
|
43
43
|
errors: null,
|
|
44
44
|
}));
|
|
45
45
|
|
|
46
|
-
const result = await GeneralHandler.update(ctx
|
|
46
|
+
const result = await GeneralHandler.update(ctx, {
|
|
47
|
+
pageType: "page",
|
|
48
|
+
pageTypePlural: "pages",
|
|
49
|
+
});
|
|
47
50
|
|
|
48
51
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
49
52
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -91,7 +94,10 @@ describe("Page revision general settings", () => {
|
|
|
91
94
|
errors: [{ key: "slug", message: "has invalid format" }],
|
|
92
95
|
}));
|
|
93
96
|
|
|
94
|
-
const result = await GeneralHandler.update(ctx
|
|
97
|
+
const result = await GeneralHandler.update(ctx, {
|
|
98
|
+
pageType: "page",
|
|
99
|
+
pageTypePlural: "pages",
|
|
100
|
+
});
|
|
95
101
|
|
|
96
102
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
97
103
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -138,7 +144,10 @@ describe("Page revision general settings", () => {
|
|
|
138
144
|
.mockImplementation(() => null);
|
|
139
145
|
|
|
140
146
|
expect(async () => {
|
|
141
|
-
await GeneralHandler.update(ctx
|
|
147
|
+
await GeneralHandler.update(ctx, {
|
|
148
|
+
pageType: "page",
|
|
149
|
+
pageTypePlural: "pages",
|
|
150
|
+
});
|
|
142
151
|
}).rejects.toThrow(`Missing revision #${revision.id}`);
|
|
143
152
|
|
|
144
153
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
@@ -39,7 +39,10 @@ describe("Page revision meta settings", () => {
|
|
|
39
39
|
errors: null,
|
|
40
40
|
}));
|
|
41
41
|
|
|
42
|
-
const result = await MetaHandler.update(ctx
|
|
42
|
+
const result = await MetaHandler.update(ctx, {
|
|
43
|
+
pageType: "page",
|
|
44
|
+
pageTypePlural: "pages",
|
|
45
|
+
});
|
|
43
46
|
|
|
44
47
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
45
48
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -86,7 +89,10 @@ describe("Page revision meta settings", () => {
|
|
|
86
89
|
errors: [{ key: "generalError", message: "some error" }],
|
|
87
90
|
}));
|
|
88
91
|
|
|
89
|
-
const result = await MetaHandler.update(ctx
|
|
92
|
+
const result = await MetaHandler.update(ctx, {
|
|
93
|
+
pageType: "page",
|
|
94
|
+
pageTypePlural: "pages",
|
|
95
|
+
});
|
|
90
96
|
|
|
91
97
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
92
98
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -133,7 +139,10 @@ describe("Page revision meta settings", () => {
|
|
|
133
139
|
.mockImplementation(() => null);
|
|
134
140
|
|
|
135
141
|
expect(async () => {
|
|
136
|
-
await MetaHandler.update(ctx
|
|
142
|
+
await MetaHandler.update(ctx, {
|
|
143
|
+
pageType: "page",
|
|
144
|
+
pageTypePlural: "pages",
|
|
145
|
+
});
|
|
137
146
|
}).rejects.toThrow(`Missing revision #${revision.id}`);
|
|
138
147
|
|
|
139
148
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
@@ -22,7 +22,10 @@ describe("Page revisions", () => {
|
|
|
22
22
|
.spyOn(ctx.client.pageRevisions, "create")
|
|
23
23
|
.mockImplementation(() => ({ revision, errors: null, pageErrors: null }));
|
|
24
24
|
|
|
25
|
-
const result = await PageRevisionsHandler.create(ctx
|
|
25
|
+
const result = await PageRevisionsHandler.create(ctx, {
|
|
26
|
+
pageType: "page",
|
|
27
|
+
pageTypePlural: "pages",
|
|
28
|
+
});
|
|
26
29
|
|
|
27
30
|
expect(mockCreate).toHaveBeenCalledWith(revision.originalId, "en");
|
|
28
31
|
|
|
@@ -40,7 +43,10 @@ describe("Page revisions", () => {
|
|
|
40
43
|
.mockImplementation(() => ({ revision: null, errors, pageErrors: null }));
|
|
41
44
|
|
|
42
45
|
expect(async () => {
|
|
43
|
-
await PageRevisionsHandler.create(ctx
|
|
46
|
+
await PageRevisionsHandler.create(ctx, {
|
|
47
|
+
pageType: "page",
|
|
48
|
+
pageTypePlural: "pages",
|
|
49
|
+
});
|
|
44
50
|
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
45
51
|
|
|
46
52
|
expect(mockCreate).toHaveBeenCalledWith(1, "en");
|
|
@@ -59,7 +65,10 @@ describe("Page revisions", () => {
|
|
|
59
65
|
}));
|
|
60
66
|
|
|
61
67
|
expect(async () => {
|
|
62
|
-
await PageRevisionsHandler.create(ctx
|
|
68
|
+
await PageRevisionsHandler.create(ctx, {
|
|
69
|
+
pageType: "page",
|
|
70
|
+
pageTypePlural: "pages",
|
|
71
|
+
});
|
|
63
72
|
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
64
73
|
|
|
65
74
|
expect(mockCreate).toHaveBeenCalledWith(1, "en");
|
|
@@ -22,7 +22,10 @@ describe("Page revisions", () => {
|
|
|
22
22
|
.spyOn(ctx.client.pageRevisions, "delete")
|
|
23
23
|
.mockImplementation(() => ({ revision, errors: null }));
|
|
24
24
|
|
|
25
|
-
const result = await PageRevisionsHandler.destroy(ctx
|
|
25
|
+
const result = await PageRevisionsHandler.destroy(ctx, {
|
|
26
|
+
pageType: "page",
|
|
27
|
+
pageTypePlural: "pages",
|
|
28
|
+
});
|
|
26
29
|
|
|
27
30
|
expect(mockDelete).toHaveBeenCalledWith(1, "en");
|
|
28
31
|
|
|
@@ -43,7 +46,10 @@ describe("Page revisions", () => {
|
|
|
43
46
|
.mockImplementation(() => ({ revision: null, errors }));
|
|
44
47
|
|
|
45
48
|
expect(async () => {
|
|
46
|
-
await PageRevisionsHandler.destroy(ctx
|
|
49
|
+
await PageRevisionsHandler.destroy(ctx, {
|
|
50
|
+
pageType: "page",
|
|
51
|
+
pageTypePlural: "pages",
|
|
52
|
+
});
|
|
47
53
|
}).rejects.toThrow(
|
|
48
54
|
`Failed to delete revision#${1}: ${JSON.stringify(errors)}`
|
|
49
55
|
);
|
|
@@ -49,7 +49,10 @@ describe("Publish page revision", () => {
|
|
|
49
49
|
.spyOn(ctx.client.pageRevisions, "publish")
|
|
50
50
|
.mockImplementation(() => ({ page: updatedPage, errors: null }));
|
|
51
51
|
|
|
52
|
-
const result = await PublishesHandler.create(ctx
|
|
52
|
+
const result = await PublishesHandler.create(ctx, {
|
|
53
|
+
pageType: "page",
|
|
54
|
+
pageTypePlural: "pages",
|
|
55
|
+
});
|
|
53
56
|
|
|
54
57
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
55
58
|
expect(mockPublish).toHaveBeenCalledWith(
|
|
@@ -99,7 +102,10 @@ describe("Publish page revision", () => {
|
|
|
99
102
|
errors: [{ key: "url", message: "Oops" }],
|
|
100
103
|
}));
|
|
101
104
|
|
|
102
|
-
const result = await PublishesHandler.create(ctx
|
|
105
|
+
const result = await PublishesHandler.create(ctx, {
|
|
106
|
+
pageType: "page",
|
|
107
|
+
pageTypePlural: "pages",
|
|
108
|
+
});
|
|
103
109
|
|
|
104
110
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
105
111
|
expect(mockPublish).toHaveBeenCalledWith(
|
|
@@ -27,7 +27,10 @@ describe("Page revision revert", () => {
|
|
|
27
27
|
pageErrors: null,
|
|
28
28
|
}));
|
|
29
29
|
|
|
30
|
-
const result = await RevertsHandler.create(ctx
|
|
30
|
+
const result = await RevertsHandler.create(ctx, {
|
|
31
|
+
pageType: "page",
|
|
32
|
+
pageTypePlural: "pages",
|
|
33
|
+
});
|
|
31
34
|
|
|
32
35
|
expect(mockRevert).toHaveBeenCalledWith(pageId, version, "en");
|
|
33
36
|
|
|
@@ -51,7 +54,10 @@ describe("Page revision revert", () => {
|
|
|
51
54
|
}));
|
|
52
55
|
|
|
53
56
|
expect(async () => {
|
|
54
|
-
await RevertsHandler.create(ctx
|
|
57
|
+
await RevertsHandler.create(ctx, {
|
|
58
|
+
pageType: "page",
|
|
59
|
+
pageTypePlural: "pages",
|
|
60
|
+
});
|
|
55
61
|
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
56
62
|
|
|
57
63
|
expect(mockRevert).toHaveBeenCalledWith(pageId, version, "en");
|
|
@@ -72,7 +78,10 @@ describe("Page revision revert", () => {
|
|
|
72
78
|
}));
|
|
73
79
|
|
|
74
80
|
expect(async () => {
|
|
75
|
-
await RevertsHandler.create(ctx
|
|
81
|
+
await RevertsHandler.create(ctx, {
|
|
82
|
+
pageType: "page",
|
|
83
|
+
pageTypePlural: "pages",
|
|
84
|
+
});
|
|
76
85
|
}).rejects.toThrow(`Failed to start revision: ${JSON.stringify(errors)}`);
|
|
77
86
|
|
|
78
87
|
expect(mockRevert).toHaveBeenCalledWith(pageId, version, "en");
|
|
@@ -43,7 +43,10 @@ describe("Page revision tags settings", () => {
|
|
|
43
43
|
errors: null,
|
|
44
44
|
}));
|
|
45
45
|
|
|
46
|
-
const result = await TagHandler.update(ctx
|
|
46
|
+
const result = await TagHandler.update(ctx, {
|
|
47
|
+
pageType: "page",
|
|
48
|
+
pageTypePlural: "pages",
|
|
49
|
+
});
|
|
47
50
|
|
|
48
51
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
49
52
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -91,7 +94,10 @@ describe("Page revision tags settings", () => {
|
|
|
91
94
|
list: tags,
|
|
92
95
|
}));
|
|
93
96
|
|
|
94
|
-
const result = await TagHandler.update(ctx
|
|
97
|
+
const result = await TagHandler.update(ctx, {
|
|
98
|
+
pageType: "page",
|
|
99
|
+
pageTypePlural: "pages",
|
|
100
|
+
});
|
|
95
101
|
|
|
96
102
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
97
103
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -37,7 +37,10 @@ describe("Page revision visuals settings", () => {
|
|
|
37
37
|
errors: null,
|
|
38
38
|
}));
|
|
39
39
|
|
|
40
|
-
const result = await VisualHandler.update(ctx
|
|
40
|
+
const result = await VisualHandler.update(ctx, {
|
|
41
|
+
pageType: "page",
|
|
42
|
+
pageTypePlural: "pages",
|
|
43
|
+
});
|
|
41
44
|
|
|
42
45
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
43
46
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -78,7 +81,10 @@ describe("Page revision visuals settings", () => {
|
|
|
78
81
|
errors: [{ key: "generalError", message: "some error" }],
|
|
79
82
|
}));
|
|
80
83
|
|
|
81
|
-
const result = await VisualHandler.update(ctx
|
|
84
|
+
const result = await VisualHandler.update(ctx, {
|
|
85
|
+
pageType: "page",
|
|
86
|
+
pageTypePlural: "pages",
|
|
87
|
+
});
|
|
82
88
|
|
|
83
89
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
84
90
|
expect(mockUpdate).toHaveBeenCalledWith(revision.id, "en", {
|
|
@@ -121,7 +127,10 @@ describe("Page revision visuals settings", () => {
|
|
|
121
127
|
.mockImplementation(() => null);
|
|
122
128
|
|
|
123
129
|
expect(async () => {
|
|
124
|
-
await VisualHandler.update(ctx
|
|
130
|
+
await VisualHandler.update(ctx, {
|
|
131
|
+
pageType: "page",
|
|
132
|
+
pageTypePlural: "pages",
|
|
133
|
+
});
|
|
125
134
|
}).rejects.toThrow(`Missing revision #${revision.id}`);
|
|
126
135
|
|
|
127
136
|
expect(mockFind).toHaveBeenCalledWith(revision.id, "en");
|
|
@@ -22,7 +22,10 @@ describe("Clone page", () => {
|
|
|
22
22
|
.spyOn(ctx.client.pages, "clone")
|
|
23
23
|
.mockImplementation(() => page);
|
|
24
24
|
|
|
25
|
-
const result = await ClonesHandler.create(ctx
|
|
25
|
+
const result = await ClonesHandler.create(ctx, {
|
|
26
|
+
pageType: "page",
|
|
27
|
+
pageTypePlural: "pages",
|
|
28
|
+
});
|
|
26
29
|
|
|
27
30
|
expect(mockClone).toHaveBeenCalledWith(page.id, "en");
|
|
28
31
|
|
|
@@ -44,7 +47,10 @@ describe("Clone page", () => {
|
|
|
44
47
|
}));
|
|
45
48
|
|
|
46
49
|
expect(async () => {
|
|
47
|
-
await ClonesHandler.create(ctx
|
|
50
|
+
await ClonesHandler.create(ctx, {
|
|
51
|
+
pageType: "page",
|
|
52
|
+
pageTypePlural: "pages",
|
|
53
|
+
});
|
|
48
54
|
}).rejects.toThrow(
|
|
49
55
|
`Error cloning page: ${JSON.stringify([{ key: "generalError", message: "some error" }])}`
|
|
50
56
|
);
|
|
@@ -33,7 +33,10 @@ describe("Page delete", () => {
|
|
|
33
33
|
.spyOn(ctx.client.pages, "delete")
|
|
34
34
|
.mockImplementation(() => ({ page, errors: null }));
|
|
35
35
|
|
|
36
|
-
const result = await DeletesHandler.create(ctx
|
|
36
|
+
const result = await DeletesHandler.create(ctx, {
|
|
37
|
+
pageType: "page",
|
|
38
|
+
pageTypePlural: "pages",
|
|
39
|
+
});
|
|
37
40
|
|
|
38
41
|
expect(mockFind).toHaveBeenCalledWith(page.id, "en");
|
|
39
42
|
expect(mockDelete).toHaveBeenCalledWith(page.id, "en", {
|
|
@@ -73,7 +76,10 @@ describe("Page delete", () => {
|
|
|
73
76
|
],
|
|
74
77
|
}));
|
|
75
78
|
|
|
76
|
-
const result = await DeletesHandler.create(ctx
|
|
79
|
+
const result = await DeletesHandler.create(ctx, {
|
|
80
|
+
pageType: "page",
|
|
81
|
+
pageTypePlural: "pages",
|
|
82
|
+
});
|
|
77
83
|
|
|
78
84
|
expect(mockFind).toHaveBeenCalledWith(page.id, "en");
|
|
79
85
|
expect(mockDelete).toHaveBeenCalledWith(page.id, "en", {
|
|
@@ -102,7 +108,10 @@ describe("Page delete", () => {
|
|
|
102
108
|
.mockImplementation(() => null);
|
|
103
109
|
|
|
104
110
|
expect(async () => {
|
|
105
|
-
await DeletesHandler.create(ctx
|
|
111
|
+
await DeletesHandler.create(ctx, {
|
|
112
|
+
pageType: "page",
|
|
113
|
+
pageTypePlural: "pages",
|
|
114
|
+
});
|
|
106
115
|
}).rejects.toThrow("Missing page #42");
|
|
107
116
|
|
|
108
117
|
expect(mockFind).toHaveBeenCalledWith("42", "en");
|
|
@@ -22,7 +22,10 @@ describe("Page delete", () => {
|
|
|
22
22
|
.spyOn(ctx.client.pages, "find")
|
|
23
23
|
.mockImplementation(() => page);
|
|
24
24
|
|
|
25
|
-
const result = await DeletesHandler.create_form(ctx
|
|
25
|
+
const result = await DeletesHandler.create_form(ctx, {
|
|
26
|
+
pageType: "page",
|
|
27
|
+
pageTypePlural: "pages",
|
|
28
|
+
});
|
|
26
29
|
|
|
27
30
|
expect(mockFind).toHaveBeenCalledWith(page.id, "en");
|
|
28
31
|
|
|
@@ -46,7 +49,10 @@ describe("Page delete", () => {
|
|
|
46
49
|
.mockImplementation(() => null);
|
|
47
50
|
|
|
48
51
|
expect(async () => {
|
|
49
|
-
await DeletesHandler.create_form(ctx
|
|
52
|
+
await DeletesHandler.create_form(ctx, {
|
|
53
|
+
pageType: "page",
|
|
54
|
+
pageTypePlural: "pages",
|
|
55
|
+
});
|
|
50
56
|
}).rejects.toThrow("Missing page #42");
|
|
51
57
|
|
|
52
58
|
expect(mockFind).toHaveBeenCalledWith("42", "en");
|
|
@@ -12,7 +12,7 @@ describe("Pages Handler", () => {
|
|
|
12
12
|
tags: new Tags(testConfig, "token"),
|
|
13
13
|
},
|
|
14
14
|
resourceParams: {
|
|
15
|
-
|
|
15
|
+
resource: params,
|
|
16
16
|
},
|
|
17
17
|
locale: "en",
|
|
18
18
|
};
|
|
@@ -39,7 +39,10 @@ describe("Pages Handler", () => {
|
|
|
39
39
|
.spyOn(ctx.client.pages, "create")
|
|
40
40
|
.mockImplementation(() => ({ page: {}, errors: null }));
|
|
41
41
|
|
|
42
|
-
const result = await PagesHandler.create(ctx
|
|
42
|
+
const result = await PagesHandler.create(ctx, {
|
|
43
|
+
pageType: "page",
|
|
44
|
+
pageTypePlural: "pages",
|
|
45
|
+
});
|
|
43
46
|
|
|
44
47
|
expect(mockedCreate).toHaveBeenCalledWith(
|
|
45
48
|
{
|
|
@@ -99,7 +102,10 @@ describe("Pages Handler", () => {
|
|
|
99
102
|
errors: [{ key: "slug", message: "cannot be blank" }],
|
|
100
103
|
}));
|
|
101
104
|
|
|
102
|
-
const result = await PagesHandler.create(ctx
|
|
105
|
+
const result = await PagesHandler.create(ctx, {
|
|
106
|
+
pageType: "page",
|
|
107
|
+
pageTypePlural: "pages",
|
|
108
|
+
});
|
|
103
109
|
|
|
104
110
|
expect(mockedTagsList).toHaveBeenCalledWith("en");
|
|
105
111
|
expect(mockedCreate).toHaveBeenCalledWith(
|
|
@@ -129,9 +135,9 @@ describe("Pages Handler", () => {
|
|
|
129
135
|
|
|
130
136
|
expect(result).toEqual({
|
|
131
137
|
assigns: {
|
|
132
|
-
|
|
138
|
+
resource: { ...params, meta_image: JSON.parse(params.meta_image) },
|
|
133
139
|
tags: [tag],
|
|
134
|
-
errors: {
|
|
140
|
+
errors: { resource: { slug: "cannot be blank" } },
|
|
135
141
|
visibilityOptions: ctx.client.pages.visibilityOptions(),
|
|
136
142
|
_translations: [],
|
|
137
143
|
},
|
|
@@ -30,7 +30,7 @@ describe("Pages Handler", () => {
|
|
|
30
30
|
|
|
31
31
|
expect(result).toEqual({
|
|
32
32
|
assigns: {
|
|
33
|
-
|
|
33
|
+
resource: { ...ctx.client.pages.defaults(), meta_image: {} },
|
|
34
34
|
tags: tags,
|
|
35
35
|
errors: {},
|
|
36
36
|
visibilityOptions: ctx.client.pages.visibilityOptions(),
|
|
@@ -30,9 +30,12 @@ describe("Pages Handler", () => {
|
|
|
30
30
|
.spyOn(ctx.client.tags, "all")
|
|
31
31
|
.mockImplementation(() => ({ list: tags, pagination: null }));
|
|
32
32
|
|
|
33
|
-
const result = await PagesHandler.index(ctx
|
|
33
|
+
const result = await PagesHandler.index(ctx, {
|
|
34
|
+
pageType: "page",
|
|
35
|
+
pageTypePlural: "pages",
|
|
36
|
+
});
|
|
34
37
|
|
|
35
|
-
expect(mockedPageList).toHaveBeenCalledWith({ foo: "bar" }, "en");
|
|
38
|
+
expect(mockedPageList).toHaveBeenCalledWith({ foo: "bar" }, "en", "page");
|
|
36
39
|
expect(mockedTagList).toHaveBeenCalledWith("en");
|
|
37
40
|
|
|
38
41
|
expect(result).toEqual({
|