Allow initial document minor publishing

Signed-off-by: Cursor Agent <cursoragent@cursor.com>

Co-authored-by: Bryan FRIMIN <bryan@frimin.fr>
This commit is contained in:
Cursor Agent
2026-05-26 02:13:46 +00:00
committed by Bryan Frimin
parent 6dfdd7ca49
commit b721179974
5 changed files with 108 additions and 11 deletions

View File

@@ -222,6 +222,109 @@ func TestDocumentVersion_PublishVersion(t *testing.T) {
assert.Equal(t, 0, result.Node.Versions.Edges[0].Node.Minor)
}
func TestDocumentVersion_PublishInitialMinorVersion(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)
docID, _ := createTestDocument(t, owner)
publishMutation := `
mutation($input: PublishDocumentInput!) {
publishDocument(input: $input) {
document {
currentPublishedMajor
currentPublishedMinor
}
documentVersion {
status
major
minor
}
}
}
`
var publishResult struct {
PublishDocument struct {
Document struct {
CurrentPublishedMajor *int `json:"currentPublishedMajor"`
CurrentPublishedMinor *int `json:"currentPublishedMinor"`
} `json:"document"`
DocumentVersion struct {
Status string `json:"status"`
Major int `json:"major"`
Minor int `json:"minor"`
} `json:"documentVersion"`
} `json:"publishDocument"`
}
err := owner.Execute(publishMutation, map[string]any{
"input": map[string]any{
"minor": true,
"documentId": docID,
"changelog": "Initial minor release",
},
}, &publishResult)
require.NoError(t, err)
require.NotNil(t, publishResult.PublishDocument.Document.CurrentPublishedMajor)
require.NotNil(t, publishResult.PublishDocument.Document.CurrentPublishedMinor)
assert.Equal(t, 0, *publishResult.PublishDocument.Document.CurrentPublishedMajor)
assert.Equal(t, 1, *publishResult.PublishDocument.Document.CurrentPublishedMinor)
assert.Equal(t, "PUBLISHED", publishResult.PublishDocument.DocumentVersion.Status)
assert.Equal(t, 0, publishResult.PublishDocument.DocumentVersion.Major)
assert.Equal(t, 1, publishResult.PublishDocument.DocumentVersion.Minor)
var updateResult struct {
UpdateDocument struct {
DocumentVersion *struct {
Status string `json:"status"`
Major int `json:"major"`
Minor int `json:"minor"`
} `json:"documentVersion"`
} `json:"updateDocument"`
}
err = owner.Execute(`
mutation($input: UpdateDocumentInput!) {
updateDocument(input: $input) {
documentVersion {
status
major
minor
}
}
}
`, map[string]any{
"input": map[string]any{
"id": docID,
"content": testutil.ProseMirrorTextDoc("Updated content for 0.2"),
},
}, &updateResult)
require.NoError(t, err)
require.NotNil(t, updateResult.UpdateDocument.DocumentVersion)
assert.Equal(t, "DRAFT", updateResult.UpdateDocument.DocumentVersion.Status)
assert.Equal(t, 0, updateResult.UpdateDocument.DocumentVersion.Major)
assert.Equal(t, 2, updateResult.UpdateDocument.DocumentVersion.Minor)
err = owner.Execute(publishMutation, map[string]any{
"input": map[string]any{
"minor": true,
"documentId": docID,
"changelog": "Second minor release",
},
}, &publishResult)
require.NoError(t, err)
require.NotNil(t, publishResult.PublishDocument.Document.CurrentPublishedMajor)
require.NotNil(t, publishResult.PublishDocument.Document.CurrentPublishedMinor)
assert.Equal(t, 0, *publishResult.PublishDocument.Document.CurrentPublishedMajor)
assert.Equal(t, 2, *publishResult.PublishDocument.Document.CurrentPublishedMinor)
assert.Equal(t, "PUBLISHED", publishResult.PublishDocument.DocumentVersion.Status)
assert.Equal(t, 0, publishResult.PublishDocument.DocumentVersion.Major)
assert.Equal(t, 2, publishResult.PublishDocument.DocumentVersion.Minor)
}
func TestDocumentVersion_AutoCreateDraft(t *testing.T) {
t.Parallel()
owner := testutil.NewClient(t, testutil.RoleOwner)