@raketa-cloud/admin 0.0.30 → 0.0.33

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