feat(site): display version message (#8435)

This commit is contained in:
Bruno Quaresma
2023-07-13 10:36:10 -03:00
committed by GitHub
parent 44e25185ff
commit b833861960
23 changed files with 291 additions and 89 deletions

3
coderd/apidoc/docs.go generated
View File

@ -8222,6 +8222,9 @@ const docTemplate = `{
"codersdk.PatchTemplateVersionRequest": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"name": {
"type": "string"
}

View File

@ -7384,6 +7384,9 @@
"codersdk.PatchTemplateVersionRequest": {
"type": "object",
"properties": {
"message": {
"type": "string"
},
"name": {
"type": "string"
}

View File

@ -4771,6 +4771,7 @@ func (q *FakeQuerier) UpdateTemplateVersionByID(_ context.Context, arg database.
templateVersion.TemplateID = arg.TemplateID
templateVersion.UpdatedAt = arg.UpdatedAt
templateVersion.Name = arg.Name
templateVersion.Message = arg.Message
q.templateVersions[index] = templateVersion
return templateVersion, nil
}

View File

@ -4688,7 +4688,8 @@ UPDATE
SET
template_id = $2,
updated_at = $3,
name = $4
name = $4,
message = $5
WHERE
id = $1 RETURNING id, template_id, organization_id, created_at, updated_at, name, readme, job_id, created_by, git_auth_providers, message
`
@ -4698,6 +4699,7 @@ type UpdateTemplateVersionByIDParams struct {
TemplateID uuid.NullUUID `db:"template_id" json:"template_id"`
UpdatedAt time.Time `db:"updated_at" json:"updated_at"`
Name string `db:"name" json:"name"`
Message string `db:"message" json:"message"`
}
func (q *sqlQuerier) UpdateTemplateVersionByID(ctx context.Context, arg UpdateTemplateVersionByIDParams) (TemplateVersion, error) {
@ -4706,6 +4708,7 @@ func (q *sqlQuerier) UpdateTemplateVersionByID(ctx context.Context, arg UpdateTe
arg.TemplateID,
arg.UpdatedAt,
arg.Name,
arg.Message,
)
var i TemplateVersion
err := row.Scan(

View File

@ -91,7 +91,8 @@ UPDATE
SET
template_id = $2,
updated_at = $3,
name = $4
name = $4,
message = $5
WHERE
id = $1 RETURNING *;

View File

@ -336,6 +336,7 @@ func (api *API) postTemplateByOrganization(rw http.ResponseWriter, r *http.Reque
},
UpdatedAt: database.Now(),
Name: templateVersion.Name,
Message: templateVersion.Message,
})
if err != nil {
return xerrors.Errorf("insert template version: %s", err)

View File

@ -106,12 +106,17 @@ func (api *API) patchTemplateVersion(rw http.ResponseWriter, r *http.Request) {
TemplateID: templateVersion.TemplateID,
UpdatedAt: database.Now(),
Name: templateVersion.Name,
Message: templateVersion.Message,
}
if params.Name != "" {
updateParams.Name = params.Name
}
if params.Message != nil {
updateParams.Message = *params.Message
}
errTemplateVersionNameConflict := xerrors.New("template version name must be unique for a template")
var updatedTemplateVersion database.TemplateVersion

View File

@ -1223,6 +1223,71 @@ func TestTemplateVersionPatch(t *testing.T) {
assert.NotEqual(t, updatedVersion.Name, version.Name)
})
t.Run("Update the message", func(t *testing.T) {
t.Parallel()
client := coderdtest.New(t, nil)
user := coderdtest.CreateFirstUser(t, client)
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) {
req.Message = "Example message"
})
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
defer cancel()
wantMessage := "Updated message"
updatedVersion, err := client.UpdateTemplateVersion(ctx, version.ID, codersdk.PatchTemplateVersionRequest{
Message: &wantMessage,
})
require.NoError(t, err)
assert.Equal(t, wantMessage, updatedVersion.Message)
})
t.Run("Remove the message", func(t *testing.T) {
t.Parallel()
client := coderdtest.New(t, nil)
user := coderdtest.CreateFirstUser(t, client)
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) {
req.Message = "Example message"
})
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
defer cancel()
wantMessage := ""
updatedVersion, err := client.UpdateTemplateVersion(ctx, version.ID, codersdk.PatchTemplateVersionRequest{
Message: &wantMessage,
})
require.NoError(t, err)
assert.Equal(t, wantMessage, updatedVersion.Message)
})
t.Run("Keep the message", func(t *testing.T) {
t.Parallel()
client := coderdtest.New(t, nil)
user := coderdtest.CreateFirstUser(t, client)
wantMessage := "Example message"
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) {
req.Message = wantMessage
})
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
t.Log(version.Message)
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
defer cancel()
updatedVersion, err := client.UpdateTemplateVersion(ctx, version.ID, codersdk.PatchTemplateVersionRequest{
Message: nil,
})
require.NoError(t, err)
assert.Equal(t, wantMessage, updatedVersion.Message)
})
t.Run("Use the same name if a new name is not passed", func(t *testing.T) {
t.Parallel()
client := coderdtest.New(t, nil)