feat: duplicate a document as draft (#6782)
* feat: duplicate a document as draft * review * Default `publish` toggle to match current document Ensures duplicating a draft does not publish it. --------- Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
@@ -26,6 +26,7 @@ describe("documentDuplicator", () => {
|
||||
expect(response[0].title).toEqual(original.title);
|
||||
expect(response[0].text).toEqual(original.text);
|
||||
expect(response[0].emoji).toEqual(original.emoji);
|
||||
expect(response[0].publishedAt).toBeInstanceOf(Date);
|
||||
});
|
||||
|
||||
it("should duplicate document with title override", async () => {
|
||||
@@ -51,6 +52,7 @@ describe("documentDuplicator", () => {
|
||||
expect(response[0].title).toEqual("New title");
|
||||
expect(response[0].text).toEqual(original.text);
|
||||
expect(response[0].emoji).toEqual(original.emoji);
|
||||
expect(response[0].publishedAt).toBeInstanceOf(Date);
|
||||
});
|
||||
|
||||
it("should duplicate child documents with recursive=true", async () => {
|
||||
@@ -81,4 +83,29 @@ describe("documentDuplicator", () => {
|
||||
|
||||
expect(response).toHaveLength(2);
|
||||
});
|
||||
|
||||
it("should duplicate existing document as draft", async () => {
|
||||
const user = await buildUser();
|
||||
const original = await buildDocument({
|
||||
userId: user.id,
|
||||
teamId: user.teamId,
|
||||
});
|
||||
|
||||
const response = await sequelize.transaction((transaction) =>
|
||||
documentDuplicator({
|
||||
document: original,
|
||||
collection: original.collection,
|
||||
transaction,
|
||||
publish: false,
|
||||
user,
|
||||
ip,
|
||||
})
|
||||
);
|
||||
|
||||
expect(response).toHaveLength(1);
|
||||
expect(response[0].title).toEqual(original.title);
|
||||
expect(response[0].text).toEqual(original.text);
|
||||
expect(response[0].emoji).toEqual(original.emoji);
|
||||
expect(response[0].publishedAt).toBeNull();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user