@raketa-cloud/admin 0.0.30 → 0.0.31

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 (163) hide show
  1. package/package.json +1 -1
  2. package/src/cloud/ArticleRevisions.js +30 -1
  3. package/src/cloud/Articles.js +22 -9
  4. package/src/cloud/EventRevisions.js +40 -1
  5. package/src/cloud/Events.js +32 -11
  6. package/src/cloud/PageRevisions.js +20 -1
  7. package/src/cloud/Pages.js +13 -7
  8. package/src/cloud/RaketaClient.js +76 -0
  9. package/src/handlers/article_revisions/CodeHandler.js +18 -34
  10. package/src/handlers/article_revisions/GeneralHandler.js +19 -38
  11. package/src/handlers/article_revisions/LocksHandler.js +11 -6
  12. package/src/handlers/article_revisions/MetaHandler.js +18 -34
  13. package/src/handlers/article_revisions/TagHandler.js +23 -29
  14. package/src/handlers/article_revisions/UnlocksHandler.js +1 -1
  15. package/src/handlers/article_revisions/VisualHandler.js +18 -28
  16. package/src/handlers/articles/ArticlesHandler.js +11 -25
  17. package/src/handlers/articles/DeletesHandler.js +4 -4
  18. package/src/handlers/articles/TranslationsHandler.js +30 -56
  19. package/src/handlers/articles/URLsHandler.js +7 -7
  20. package/src/handlers/event_revisions/CodeHandler.js +22 -36
  21. package/src/handlers/event_revisions/GeneralHandler.js +22 -42
  22. package/src/handlers/event_revisions/LocksHandler.js +7 -6
  23. package/src/handlers/event_revisions/MetaHandler.js +22 -36
  24. package/src/handlers/event_revisions/TagHandler.js +25 -29
  25. package/src/handlers/event_revisions/VisualHandler.js +22 -30
  26. package/src/handlers/events/DeletesHandler.js +4 -4
  27. package/src/handlers/events/EventsHandler.js +13 -27
  28. package/src/handlers/events/TranslationsHandler.js +35 -58
  29. package/src/handlers/events/URLsHandler.js +7 -7
  30. package/src/handlers/page_revisions/CodeHandler.js +8 -34
  31. package/src/handlers/page_revisions/GeneralHandler.js +10 -37
  32. package/src/handlers/page_revisions/LocksHandler.js +11 -6
  33. package/src/handlers/page_revisions/MetaHandler.js +8 -34
  34. package/src/handlers/page_revisions/TagHandler.js +16 -27
  35. package/src/handlers/page_revisions/VisualHandler.js +8 -28
  36. package/src/handlers/pages/DeletesHandler.js +4 -4
  37. package/src/handlers/pages/PagesHandler.js +7 -24
  38. package/src/handlers/pages/TranslationsHandler.js +23 -45
  39. package/src/handlers/pages/URLsHandler.js +7 -7
  40. package/src/helpers/FormBuilder.js +1 -2
  41. package/src/tests/handlers/RedirectsHandler.test/create.test.js +1 -1
  42. package/src/tests/handlers/RedirectsHandler.test/create_form.test.js +1 -1
  43. package/src/tests/handlers/RedirectsHandler.test/destroy.test.js +1 -1
  44. package/src/tests/handlers/RedirectsHandler.test/edit_form.test.js +1 -1
  45. package/src/tests/handlers/RedirectsHandler.test/index.test.js +1 -1
  46. package/src/tests/handlers/RedirectsHandler.test/show.test.js +1 -1
  47. package/src/tests/handlers/RedirectsHandler.test/update.test.js +1 -1
  48. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/create.test.js +1 -1
  49. package/src/tests/handlers/article_revisions/ArticleRevisionsHandler.test/destroy.test.js +1 -1
  50. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +7 -7
  51. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +37 -19
  52. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +5 -11
  53. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +36 -28
  54. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +7 -8
  55. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +41 -25
  56. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +2 -2
  57. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +2 -2
  58. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +1 -1
  59. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +10 -7
  60. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +20 -14
  61. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +7 -6
  62. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +30 -19
  63. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +2 -2
  64. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +2 -2
  65. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +53 -29
  66. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +3 -3
  67. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +2 -2
  68. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +3 -3
  69. package/src/tests/handlers/articles/ClonesHandler.test/create.test.js +1 -1
  70. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +4 -4
  71. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +2 -2
  72. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +6 -6
  73. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +2 -2
  74. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +11 -7
  75. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +43 -19
  76. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/create.test.js +1 -1
  77. package/src/tests/handlers/event_revisions/EventRevisionsHandler.test/destroy.test.js +1 -1
  78. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +7 -13
  79. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +42 -32
  80. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +11 -8
  81. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +47 -25
  82. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +2 -2
  83. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +2 -2
  84. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +1 -1
  85. package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +14 -7
  86. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +26 -14
  87. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +11 -6
  88. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +36 -19
  89. package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +2 -2
  90. package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +2 -2
  91. package/src/tests/handlers/events/ClonesHandler.test/create.test.js +1 -1
  92. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +4 -4
  93. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +2 -2
  94. package/src/tests/handlers/events/EventsHandler.test/create.test.js +53 -37
  95. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +3 -3
  96. package/src/tests/handlers/events/EventsHandler.test/index.test.js +2 -2
  97. package/src/tests/handlers/events/EventsHandler.test/show.test.js +3 -3
  98. package/src/tests/handlers/events/URLsHandler.test/create.test.js +6 -6
  99. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +2 -2
  100. package/src/tests/handlers/page_revisions/CodesHandler.test/edit_form.test.js +10 -8
  101. package/src/tests/handlers/page_revisions/CodesHandler.test/update.test.js +30 -17
  102. package/src/tests/handlers/page_revisions/GeneralHandler.test/edit_form.test.js +3 -11
  103. package/src/tests/handlers/page_revisions/GeneralHandler.test/update.test.js +38 -22
  104. package/src/tests/handlers/page_revisions/MetaHandler.test/edit_form.test.js +2 -8
  105. package/src/tests/handlers/page_revisions/MetaHandler.test/update.test.js +37 -23
  106. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/create.test.js +1 -1
  107. package/src/tests/handlers/page_revisions/PageRevisionsHandler.test/destroy.test.js +1 -1
  108. package/src/tests/handlers/page_revisions/PublishesHandler.test/create.test.js +2 -2
  109. package/src/tests/handlers/page_revisions/PublishesHandler.test/create_form.test.js +2 -2
  110. package/src/tests/handlers/page_revisions/RevertsHandler.test/create.test.js +1 -1
  111. package/src/tests/handlers/page_revisions/TagHandler.test/edit_form.test.js +3 -7
  112. package/src/tests/handlers/page_revisions/TagHandler.test/update.test.js +11 -12
  113. package/src/tests/handlers/page_revisions/VisualHandler.test.test/edit_form.test.js +10 -7
  114. package/src/tests/handlers/page_revisions/VisualHandler.test.test/update.test.js +23 -17
  115. package/src/tests/handlers/page_revisions/WidgetHandler.test/show.test.js +2 -2
  116. package/src/tests/handlers/page_revisions/WidgetHandler.test/update.test.js +2 -2
  117. package/src/tests/handlers/pages/ConesHandler.test/create.test.js +1 -1
  118. package/src/tests/handlers/pages/DeletesHandler.test/create.test.js +4 -4
  119. package/src/tests/handlers/pages/DeletesHandler.test/create_form.test.js +2 -2
  120. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +50 -27
  121. package/src/tests/handlers/pages/PagesHandler.test/create_form.test.js +3 -3
  122. package/src/tests/handlers/pages/PagesHandler.test/index.test.js +2 -2
  123. package/src/tests/handlers/pages/PagesHandler.test/show.test.js +3 -3
  124. package/src/tests/handlers/pages/URLsHandler.test/create.test.js +6 -6
  125. package/src/tests/handlers/pages/URLsHandler.test/create_form.test.js +2 -2
  126. package/src/utils.js +12 -0
  127. package/src/views/_shared/_credentials_input.ejs +31 -0
  128. package/src/views/_shared/_layout_input.ejs +5 -0
  129. package/src/views/article_revisions/_nav.ejs +5 -5
  130. package/src/views/article_revisions/codes/edit_form.ejs +17 -6
  131. package/src/views/article_revisions/general/edit_form.ejs +10 -36
  132. package/src/views/article_revisions/locks/create_form.ejs +4 -4
  133. package/src/views/article_revisions/meta/edit_form.ejs +7 -7
  134. package/src/views/article_revisions/tags/edit_form.ejs +5 -5
  135. package/src/views/article_revisions/visuals/edit_form.ejs +5 -9
  136. package/src/views/articles/_form.ejs +6 -37
  137. package/src/views/articles/deletes/create_form.ejs +9 -9
  138. package/src/views/articles/translations/_form.ejs +14 -46
  139. package/src/views/articles/urls/create_form.ejs +5 -5
  140. package/src/views/event_revisions/_nav.ejs +5 -5
  141. package/src/views/event_revisions/codes/edit_form.ejs +17 -6
  142. package/src/views/event_revisions/general/edit_form.ejs +12 -38
  143. package/src/views/event_revisions/locks/create_form.ejs +4 -4
  144. package/src/views/event_revisions/meta/edit_form.ejs +7 -7
  145. package/src/views/event_revisions/tags/edit_form.ejs +5 -5
  146. package/src/views/event_revisions/visuals/edit_form.ejs +5 -9
  147. package/src/views/events/_form.ejs +8 -39
  148. package/src/views/events/deletes/create_form.ejs +9 -9
  149. package/src/views/events/translations/_form.ejs +16 -47
  150. package/src/views/events/urls/create_form.ejs +5 -5
  151. package/src/views/layouts/application.ejs +57 -35
  152. package/src/views/page_revisions/_nav.ejs +5 -5
  153. package/src/views/page_revisions/codes/edit_form.ejs +17 -6
  154. package/src/views/page_revisions/general/edit_form.ejs +8 -35
  155. package/src/views/page_revisions/locks/create_form.ejs +4 -4
  156. package/src/views/page_revisions/meta/edit_form.ejs +7 -7
  157. package/src/views/page_revisions/publishes/_form.ejs +9 -9
  158. package/src/views/page_revisions/tags/edit_form.ejs +5 -5
  159. package/src/views/page_revisions/visuals/edit_form.ejs +5 -9
  160. package/src/views/pages/_form.ejs +5 -36
  161. package/src/views/pages/deletes/create_form.ejs +9 -9
  162. package/src/views/pages/translations/_form.ejs +13 -45
  163. package/src/views/pages/urls/create_form.ejs +5 -5
@@ -6,7 +6,7 @@ import Factory from "../../support/factory";
6
6
  function buildCtx() {
7
7
  return {
8
8
  client: {
9
- redirects: new Redirects({}, "token"),
9
+ redirects: new Redirects(() => ({}), "token"),
10
10
  },
11
11
  params: { id: 1 },
12
12
  };
@@ -7,7 +7,7 @@ describe("Redirects", () => {
7
7
  function buildCtx() {
8
8
  return {
9
9
  client: {
10
- redirects: new Redirects({}, "token"),
10
+ redirects: new Redirects(() => ({}), "token"),
11
11
  },
12
12
  query: { foo: "bar" },
13
13
  req: {
@@ -6,7 +6,7 @@ import Factory from "../../support/factory";
6
6
  function buildCtx() {
7
7
  return {
8
8
  client: {
9
- redirects: new Redirects({}, "token"),
9
+ redirects: new Redirects(() => ({}), "token"),
10
10
  },
11
11
  params: { id: 1 },
12
12
  };
@@ -6,7 +6,7 @@ import Factory from "../../support/factory";
6
6
  function buildCtx(redirect) {
7
7
  return {
8
8
  client: {
9
- redirects: new Redirects({}, "token"),
9
+ redirects: new Redirects(() => ({}), "token"),
10
10
  },
11
11
  params: { id: redirect.id },
12
12
  resourceParams: {
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(articleID) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: articleID },
12
12
  locale: "en",
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revisionID) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { id: revisionID },
12
12
  locale: "en",
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  locale: "en",
@@ -15,7 +15,9 @@ function buildCtx(revision) {
15
15
 
16
16
  describe("Article revision code settings", () => {
17
17
  test("edit_form when a revision exists", async () => {
18
- const revision = Factory.build("article_revision");
18
+ const revision = Factory.build("article_revision", {
19
+ publishAt: "2024-10-10T07:05:00Z",
20
+ });
19
21
  const ctx = buildCtx(revision);
20
22
 
21
23
  const mockFind = jest
@@ -28,11 +30,9 @@ describe("Article revision code settings", () => {
28
30
 
29
31
  expect(result).toEqual({
30
32
  assigns: {
31
- code_settings: {
32
- id: revision.id,
33
- originalId: revision.originalId,
34
- scripts: JSON.stringify([]),
35
- structured_data: JSON.stringify({}),
33
+ resource: {
34
+ ...revision,
35
+ publishAt: "2024-10-10T07:05:00",
36
36
  },
37
37
  errors: {},
38
38
  _translations: [],
@@ -6,11 +6,11 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision, updateSettings) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  resourceParams: {
13
- code_settings: updateSettings,
13
+ resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  resourceConfig: {
@@ -22,11 +22,17 @@ function buildCtx(revision, updateSettings) {
22
22
 
23
23
  describe("Article revision code settings", () => {
24
24
  test("update successful", async () => {
25
- const revision = Factory.build("article_revision");
25
+ const revision = Factory.build("article_revision", {
26
+ publishAt: "2024-10-10T07:05:00Z",
27
+ });
26
28
 
27
29
  const updateSettings = {
28
- scripts: JSON.stringify([{ type: "bla" }]),
29
- structured_data: JSON.stringify({ type: "article" }),
30
+ settings: {
31
+ codes: {
32
+ scripts: JSON.stringify([{ type: "bla" }]),
33
+ structured_data: JSON.stringify({ type: "article" }),
34
+ },
35
+ },
30
36
  };
31
37
 
32
38
  const ctx = buildCtx(revision, updateSettings);
@@ -50,16 +56,16 @@ describe("Article revision code settings", () => {
50
56
  title: revision.title,
51
57
  visibility: revision.visibility,
52
58
  publishAt: revision.publishAt,
53
- widgets: JSON.stringify(revision.widgets),
59
+ widgets: revision.widgets,
54
60
  tags: revision.tags.map((t) => t.id),
55
61
  categories: revision.categories.map((c) => c.id),
56
- settings: JSON.stringify({
62
+ settings: {
57
63
  ...revision.settings,
58
64
  codes: {
59
65
  scripts: [{ type: "bla" }],
60
66
  structured_data: { type: "article" },
61
67
  },
62
- }),
68
+ },
63
69
  });
64
70
 
65
71
  expect(result).toEqual({
@@ -68,11 +74,17 @@ describe("Article revision code settings", () => {
68
74
  });
69
75
 
70
76
  test("update failed", async () => {
71
- const revision = Factory.build("article_revision");
77
+ const revision = Factory.build("article_revision", {
78
+ publishAt: "2024-10-10T07:05:00Z",
79
+ });
72
80
 
73
81
  const updateSettings = {
74
- scripts: JSON.stringify([{ type: "bla" }]),
75
- structured_data: JSON.stringify({ type: "article" }),
82
+ settings: {
83
+ codes: {
84
+ scripts: JSON.stringify([{ type: "bla" }]),
85
+ structured_data: JSON.stringify({ type: "article" }),
86
+ },
87
+ },
76
88
  };
77
89
 
78
90
  const ctx = buildCtx(revision, updateSettings);
@@ -96,27 +108,33 @@ describe("Article revision code settings", () => {
96
108
  title: revision.title,
97
109
  visibility: revision.visibility,
98
110
  publishAt: revision.publishAt,
99
- widgets: JSON.stringify(revision.widgets),
111
+ widgets: revision.widgets,
100
112
  tags: revision.tags.map((t) => t.id),
101
113
  categories: revision.categories.map((c) => c.id),
102
- settings: JSON.stringify({
114
+ settings: {
103
115
  ...revision.settings,
104
116
  codes: {
105
117
  scripts: [{ type: "bla" }],
106
118
  structured_data: { type: "article" },
107
119
  },
108
- }),
120
+ },
109
121
  });
110
122
 
111
123
  expect(result).toEqual({
112
124
  assigns: {
113
- code_settings: {
114
- ...updateSettings,
115
- id: revision.id,
116
- originalId: revision.originalId,
125
+ resource: {
126
+ ...revision,
127
+ publishAt: "2024-10-10T07:05:00",
128
+ settings: {
129
+ ...revision.settings,
130
+ codes: {
131
+ scripts: [{ type: "bla" }],
132
+ structured_data: { type: "article" },
133
+ },
134
+ },
117
135
  },
118
136
  errors: {
119
- code_settings: { generalError: "some error" },
137
+ resource: { generalError: "some error" },
120
138
  },
121
139
  _translations: [],
122
140
  },
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- articles: new Articles({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ articles: new Articles(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -32,15 +32,9 @@ describe("Article revision genereal settings", () => {
32
32
 
33
33
  expect(result).toEqual({
34
34
  assigns: {
35
- general_settings: {
36
- id: revision.id,
37
- originalId: revision.originalId,
38
- title: revision.title,
39
- slug: revision.slug,
40
- visibility: revision.visibility,
41
- publish_at: "2024-08-30T16:05:00",
42
- username: revision.settings?.credentials?.user || "",
43
- password: revision.settings?.credentials?.password || "",
35
+ resource: {
36
+ ...revision,
37
+ publishAt: "2024-08-30T16:05:00",
44
38
  },
45
39
  errors: {},
46
40
  visibilityOptions: ctx.client.articles.visibilityOptions(),
@@ -7,12 +7,12 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, updateSettings) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- articles: new Articles({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ articles: new Articles(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams: {
15
- general_settings: updateSettings,
15
+ resource: updateSettings,
16
16
  },
17
17
  locale: "en",
18
18
  resourceConfig: {
@@ -30,9 +30,13 @@ describe("Article revision general settings", () => {
30
30
  title: "Updated title",
31
31
  slug: "/updated-url",
32
32
  visibility: "protected",
33
- publish_at: "2024-08-30T19:05",
34
- username: "user",
35
- password: "admin123!@#",
33
+ publishAt: "2024-08-30T19:05",
34
+ settings: {
35
+ credentials: {
36
+ user: "user",
37
+ password: "admin123!@#",
38
+ },
39
+ },
36
40
  };
37
41
 
38
42
  const ctx = buildCtx(revision, updateSettings);
@@ -56,16 +60,13 @@ describe("Article revision general settings", () => {
56
60
  title: updateSettings.title,
57
61
  visibility: updateSettings.visibility,
58
62
  publishAt: "2024-08-30T19:05:00Z",
59
- widgets: JSON.stringify(revision.widgets),
63
+ widgets: revision.widgets,
60
64
  tags: revision.tags.map((t) => t.id),
61
65
  categories: revision.categories.map((c) => c.id),
62
- settings: JSON.stringify({
66
+ settings: {
63
67
  ...revision.settings,
64
- credentials: {
65
- user: updateSettings.username,
66
- password: updateSettings.password,
67
- },
68
- }),
68
+ ...updateSettings.settings,
69
+ },
69
70
  });
70
71
 
71
72
  expect(result).toEqual({
@@ -80,9 +81,13 @@ describe("Article revision general settings", () => {
80
81
  title: "Updated title",
81
82
  slug: "/updated-url",
82
83
  visibility: "protected",
83
- publish_at: "2024-08-30T19:05",
84
- username: "user",
85
- password: "admin123!@#",
84
+ publishAt: "2024-08-30T19:05",
85
+ settings: {
86
+ credentials: {
87
+ user: "user",
88
+ password: "admin123!@#",
89
+ },
90
+ },
86
91
  };
87
92
 
88
93
  const ctx = buildCtx(revision, updateSettings);
@@ -106,27 +111,30 @@ describe("Article revision general settings", () => {
106
111
  title: updateSettings.title,
107
112
  visibility: updateSettings.visibility,
108
113
  publishAt: "2024-08-30T19:05:00Z",
109
- widgets: JSON.stringify(revision.widgets),
114
+ widgets: revision.widgets,
110
115
  tags: revision.tags.map((t) => t.id),
111
116
  categories: revision.categories.map((c) => c.id),
112
- settings: JSON.stringify({
117
+ settings: {
113
118
  ...revision.settings,
114
- credentials: {
115
- user: updateSettings.username,
116
- password: updateSettings.password,
117
- },
118
- }),
119
+ ...updateSettings.settings,
120
+ },
119
121
  });
120
122
 
121
123
  expect(result).toEqual({
122
124
  assigns: {
123
- general_settings: {
124
- ...updateSettings,
125
- id: revision.id,
126
- originalId: revision.originalId,
125
+ resource: {
126
+ ...revision,
127
+ slug: updateSettings.slug,
128
+ title: updateSettings.title,
129
+ visibility: updateSettings.visibility,
130
+ publishAt: "2024-08-30T19:05:00",
131
+ settings: {
132
+ ...revision.settings,
133
+ ...updateSettings.settings,
134
+ },
127
135
  },
128
136
  errors: {
129
- general_settings: { slug: "has invalid format" },
137
+ resource: { slug: "has invalid format" },
130
138
  },
131
139
  visibilityOptions: ctx.client.articles.visibilityOptions(),
132
140
  _translations: [],
@@ -6,7 +6,7 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  locale: "en",
@@ -15,7 +15,9 @@ function buildCtx(revision) {
15
15
 
16
16
  describe("Article revision meta settings", () => {
17
17
  test("edit_form when a revision exists", async () => {
18
- const revision = Factory.build("article_revision");
18
+ const revision = Factory.build("article_revision", {
19
+ publishAt: "2024-10-10T07:05:00Z",
20
+ });
19
21
  const ctx = buildCtx(revision);
20
22
 
21
23
  const mockFind = jest
@@ -28,12 +30,9 @@ describe("Article revision meta settings", () => {
28
30
 
29
31
  expect(result).toEqual({
30
32
  assigns: {
31
- meta_settings: {
32
- id: revision.id,
33
- originalId: revision.originalId,
34
- title: revision.settings.meta.title,
35
- description: revision.settings.meta.description,
36
- image: revision.settings.meta.image,
33
+ resource: {
34
+ ...revision,
35
+ publishAt: "2024-10-10T07:05:00",
37
36
  },
38
37
  errors: {},
39
38
  _translations: [],
@@ -6,11 +6,11 @@ import Factory from "../../../support/factory";
6
6
  function buildCtx(revision, updateSettings) {
7
7
  return {
8
8
  client: {
9
- articleRevisions: new ArticleRevisions({}, "token"),
9
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
10
10
  },
11
11
  params: { parent_id: revision.id },
12
12
  resourceParams: {
13
- meta_settings: updateSettings,
13
+ resource: updateSettings,
14
14
  },
15
15
  locale: "en",
16
16
  resourceConfig: {
@@ -22,12 +22,18 @@ function buildCtx(revision, updateSettings) {
22
22
 
23
23
  describe("Article revision meta settings", () => {
24
24
  test("update successful", async () => {
25
- const revision = Factory.build("article_revision");
25
+ const revision = Factory.build("article_revision", {
26
+ publishAt: "2024-10-10T07:05:00Z",
27
+ });
26
28
 
27
29
  const updateSettings = {
28
- title: "An open graph title",
29
- description: "An open graph description",
30
- image: JSON.stringify({ id: 42 }),
30
+ settings: {
31
+ meta: {
32
+ title: "An open graph title",
33
+ description: "An open graph description",
34
+ image: JSON.stringify({ id: 42 }),
35
+ },
36
+ },
31
37
  };
32
38
 
33
39
  const ctx = buildCtx(revision, updateSettings);
@@ -51,17 +57,16 @@ describe("Article revision meta settings", () => {
51
57
  title: revision.title,
52
58
  visibility: revision.visibility,
53
59
  publishAt: revision.publishAt,
54
- widgets: JSON.stringify(revision.widgets),
60
+ widgets: revision.widgets,
55
61
  tags: revision.tags.map((t) => t.id),
56
62
  categories: revision.categories.map((c) => c.id),
57
- settings: JSON.stringify({
63
+ settings: {
58
64
  ...revision.settings,
59
65
  meta: {
60
- title: updateSettings.title,
61
- description: updateSettings.description,
66
+ ...updateSettings.settings.meta,
62
67
  image: { id: 42 },
63
68
  },
64
- }),
69
+ },
65
70
  });
66
71
 
67
72
  expect(result).toEqual({
@@ -70,12 +75,18 @@ describe("Article revision meta settings", () => {
70
75
  });
71
76
 
72
77
  test("update failed", async () => {
73
- const revision = Factory.build("article_revision");
78
+ const revision = Factory.build("article_revision", {
79
+ publishAt: "2024-10-10T07:05:00Z",
80
+ });
74
81
 
75
82
  const updateSettings = {
76
- title: "An open graph title",
77
- description: "An open graph description",
78
- image: JSON.stringify({ id: 42 }),
83
+ settings: {
84
+ meta: {
85
+ title: "An open graph title",
86
+ description: "An open graph description",
87
+ image: JSON.stringify({ id: 42 }),
88
+ },
89
+ },
79
90
  };
80
91
 
81
92
  const ctx = buildCtx(revision, updateSettings);
@@ -99,28 +110,33 @@ describe("Article revision meta settings", () => {
99
110
  title: revision.title,
100
111
  visibility: revision.visibility,
101
112
  publishAt: revision.publishAt,
102
- widgets: JSON.stringify(revision.widgets),
113
+ widgets: revision.widgets,
103
114
  tags: revision.tags.map((t) => t.id),
104
115
  categories: revision.categories.map((c) => c.id),
105
- settings: JSON.stringify({
116
+ settings: {
106
117
  ...revision.settings,
107
118
  meta: {
108
- title: updateSettings.title,
109
- description: updateSettings.description,
119
+ ...updateSettings.settings.meta,
110
120
  image: { id: 42 },
111
121
  },
112
- }),
122
+ },
113
123
  });
114
124
 
115
125
  expect(result).toEqual({
116
126
  assigns: {
117
- meta_settings: {
118
- ...updateSettings,
119
- id: revision.id,
120
- originalId: revision.originalId,
127
+ resource: {
128
+ ...revision,
129
+ publishAt: "2024-10-10T07:05:00",
130
+ settings: {
131
+ ...revision.settings,
132
+ meta: {
133
+ ...updateSettings.settings.meta,
134
+ image: { id: 42 },
135
+ },
136
+ },
121
137
  },
122
138
  errors: {
123
- meta_settings: { generalError: "some error" },
139
+ resource: { generalError: "some error" },
124
140
  },
125
141
  _translations: [],
126
142
  },
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, resourceParams) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- articles: new Articles({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ articles: new Articles(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams,
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- articles: new Articles({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ articles: new Articles(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -4,7 +4,7 @@ import ArticleRevisions from "../../../../cloud/ArticleRevisions";
4
4
  function buildCtx(articleID, version) {
5
5
  return {
6
6
  client: {
7
- articleRevisions: new ArticleRevisions({}, "token"),
7
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
8
8
  },
9
9
  params: { parent_id: articleID },
10
10
  resourceParams: { version },
@@ -7,8 +7,8 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- tags: new Tags({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ tags: new Tags(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  locale: "en",
@@ -21,7 +21,10 @@ describe("Article revision tags settings", () => {
21
21
  Factory.build("tag", { id: 42 }),
22
22
  Factory.build("tag", { id: 69 }),
23
23
  ];
24
- const revision = Factory.build("article_revision", { tags: [tags[0]] });
24
+ const revision = Factory.build("article_revision", {
25
+ tags: [tags[0]],
26
+ publishAt: "2024-10-10T07:00:00Z",
27
+ });
25
28
  const ctx = buildCtx(revision);
26
29
 
27
30
  const mockFind = jest
@@ -41,10 +44,10 @@ describe("Article revision tags settings", () => {
41
44
 
42
45
  expect(result).toEqual({
43
46
  assigns: {
44
- tag_settings: {
45
- id: revision.id,
46
- originalId: revision.originalId,
47
- tags: revision.tags.map((t) => t.id),
47
+ resource: {
48
+ ...revision,
49
+ publishAt: "2024-10-10T07:00:00",
50
+ tags: [tags[0].id],
48
51
  },
49
52
  tags: tags,
50
53
  errors: {},
@@ -7,12 +7,12 @@ import Factory from "../../../support/factory";
7
7
  function buildCtx(revision, updateSettings) {
8
8
  return {
9
9
  client: {
10
- articleRevisions: new ArticleRevisions({}, "token"),
11
- tags: new Tags({}, "token"),
10
+ articleRevisions: new ArticleRevisions(() => ({}), "token"),
11
+ tags: new Tags(() => ({}), "token"),
12
12
  },
13
13
  params: { parent_id: revision.id },
14
14
  resourceParams: {
15
- tag_settings: updateSettings,
15
+ resource: updateSettings,
16
16
  },
17
17
  locale: "en",
18
18
  resourceConfig: {
@@ -28,7 +28,10 @@ describe("Article revision tags settings", () => {
28
28
  Factory.build("tag", { id: 42 }),
29
29
  Factory.build("tag", { id: 69 }),
30
30
  ];
31
- const revision = Factory.build("article_revision", { tags: [tags[0]] });
31
+ const revision = Factory.build("article_revision", {
32
+ tags: [tags[0]],
33
+ publishAt: "2024-10-10T07:00:00Z",
34
+ });
32
35
 
33
36
  const updateSettings = {
34
37
  tags: [tags.map((t) => t.id)],
@@ -55,10 +58,10 @@ describe("Article revision tags settings", () => {
55
58
  title: revision.title,
56
59
  visibility: revision.visibility,
57
60
  publishAt: revision.publishAt,
58
- widgets: JSON.stringify(revision.widgets),
61
+ widgets: revision.widgets,
59
62
  tags: updateSettings.tags,
60
63
  categories: revision.categories.map((c) => c.id),
61
- settings: JSON.stringify(revision.settings),
64
+ settings: revision.settings,
62
65
  });
63
66
 
64
67
  expect(result).toEqual({
@@ -71,7 +74,10 @@ describe("Article revision tags settings", () => {
71
74
  Factory.build("tag", { id: 42 }),
72
75
  Factory.build("tag", { id: 69 }),
73
76
  ];
74
- const revision = Factory.build("article_revision", { tags: [tags[0]] });
77
+ const revision = Factory.build("article_revision", {
78
+ tags: [tags[0]],
79
+ publishAt: "2024-10-10T07:00:00Z",
80
+ });
75
81
 
76
82
  const updateSettings = {
77
83
  tags: [tags.map((t) => t.id)],
@@ -104,22 +110,22 @@ describe("Article revision tags settings", () => {
104
110
  title: revision.title,
105
111
  visibility: revision.visibility,
106
112
  publishAt: revision.publishAt,
107
- widgets: JSON.stringify(revision.widgets),
113
+ widgets: revision.widgets,
108
114
  tags: updateSettings.tags,
109
115
  categories: revision.categories.map((c) => c.id),
110
- settings: JSON.stringify(revision.settings),
116
+ settings: revision.settings,
111
117
  });
112
118
  expect(mockTags).toHaveBeenCalledWith("en");
113
119
 
114
120
  expect(result).toEqual({
115
121
  assigns: {
116
- tag_settings: {
117
- ...updateSettings,
118
- id: revision.id,
119
- originalId: revision.originalId,
122
+ resource: {
123
+ ...revision,
124
+ tags: updateSettings.tags,
125
+ publishAt: "2024-10-10T07:00:00",
120
126
  },
121
127
  errors: {
122
- tag_settings: { generalError: "some error" },
128
+ resource: { generalError: "some error" },
123
129
  },
124
130
  tags: tags,
125
131
  _translations: [],