Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit753a5a5

Browse files
committed
add test
1 parentfb0842f commit753a5a5

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

‎cli/templatepush_test.go‎

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@ import (
66
"os"
77
"path/filepath"
88
"runtime"
9+
"strconv"
910
"strings"
1011
"testing"
12+
"time"
1113

1214
"github.com/google/uuid"
1315
"github.com/stretchr/testify/assert"
@@ -708,6 +710,152 @@ func TestTemplatePush(t *testing.T) {
708710
require.NotEqual(t,uuid.Nil,template.ActiveVersionID)
709711
})
710712
})
713+
714+
t.Run("EditMetadata",func(t*testing.T) {
715+
t.Parallel()
716+
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerDaemon:true})
717+
owner:=coderdtest.CreateFirstUser(t,client)
718+
templateAdmin,_:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID,rbac.RoleTemplateAdmin())
719+
version:=coderdtest.CreateTemplateVersion(t,client,owner.OrganizationID,nil)
720+
_=coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
721+
722+
template:=coderdtest.CreateTemplate(t,client,owner.OrganizationID,version.ID)
723+
724+
// Test the cli command.
725+
source:=clitest.CreateTemplateVersionSource(t,&echo.Responses{
726+
Parse:echo.ParseComplete,
727+
ProvisionApply:echo.ApplyComplete,
728+
})
729+
730+
name:="new-template-name"
731+
displayName:="New Display Name 789"
732+
desc:="lorem ipsum dolor sit amet et cetera"
733+
icon:="/icon/new-icon.png"
734+
defaultTTL:=12*time.Hour
735+
allowUserCancelWorkspaceJobs:=false
736+
737+
inv,root:=clitest.New(t,
738+
"templates",
739+
"push",
740+
template.Name,
741+
"--directory",source,
742+
"--test.provisioner",string(database.ProvisionerTypeEcho),
743+
"--name",name,
744+
"--display-name",displayName,
745+
"--description",desc,
746+
"--icon",icon,
747+
"--default-ttl",defaultTTL.String(),
748+
"--allow-user-cancel-workspace-jobs="+strconv.FormatBool(allowUserCancelWorkspaceJobs),
749+
)
750+
clitest.SetupConfig(t,templateAdmin,root)
751+
pty:=ptytest.New(t).Attach(inv)
752+
753+
execDone:=make(chanerror)
754+
gofunc() {
755+
execDone<-inv.Run()
756+
}()
757+
758+
matches:= []struct {
759+
matchstring
760+
writestring
761+
}{
762+
{match:"Upload",write:"yes"},
763+
}
764+
for_,m:=rangematches {
765+
pty.ExpectMatch(m.match)
766+
pty.WriteLine(m.write)
767+
}
768+
769+
require.NoError(t,<-execDone)
770+
771+
// Assert that the template version changed.
772+
templateVersions,err:=client.TemplateVersionsByTemplate(context.Background(), codersdk.TemplateVersionsByTemplateRequest{
773+
TemplateID:template.ID,
774+
})
775+
require.NoError(t,err)
776+
assert.Len(t,templateVersions,2)
777+
assert.NotEqual(t,template.ActiveVersionID,templateVersions[1].ID)
778+
require.Equal(t,name,templateVersions[1].Name)
779+
780+
// Assert that the template metadata changed.
781+
updated,err:=client.Template(context.Background(),template.ID)
782+
require.NoError(t,err)
783+
assert.Equal(t,template.Name,updated.Name)
784+
assert.Equal(t,displayName,updated.DisplayName)
785+
assert.Equal(t,desc,updated.Description)
786+
assert.Equal(t,icon,updated.Icon)
787+
assert.Equal(t,defaultTTL.Milliseconds(),updated.DefaultTTLMillis)
788+
assert.Equal(t,allowUserCancelWorkspaceJobs,updated.AllowUserCancelWorkspaceJobs)
789+
})
790+
791+
t.Run("EditMetadataNoSideEffects",func(t*testing.T) {
792+
t.Parallel()
793+
client:=coderdtest.New(t,&coderdtest.Options{IncludeProvisionerDaemon:true})
794+
owner:=coderdtest.CreateFirstUser(t,client)
795+
templateAdmin,_:=coderdtest.CreateAnotherUser(t,client,owner.OrganizationID,rbac.RoleTemplateAdmin())
796+
version:=coderdtest.CreateTemplateVersion(t,client,owner.OrganizationID,nil)
797+
_=coderdtest.AwaitTemplateVersionJobCompleted(t,client,version.ID)
798+
799+
template:=coderdtest.CreateTemplate(t,client,owner.OrganizationID,version.ID)
800+
801+
// Test the cli command.
802+
source:=clitest.CreateTemplateVersionSource(t,&echo.Responses{
803+
Parse:echo.ParseComplete,
804+
ProvisionApply:echo.ApplyComplete,
805+
})
806+
807+
desc:="lorem ipsum dolor sit amet et cetera"
808+
809+
inv,root:=clitest.New(t,
810+
"templates",
811+
"push",
812+
template.Name,
813+
"--directory",source,
814+
"--test.provisioner",string(database.ProvisionerTypeEcho),
815+
"--description",desc,
816+
)
817+
clitest.SetupConfig(t,templateAdmin,root)
818+
pty:=ptytest.New(t).Attach(inv)
819+
820+
execDone:=make(chanerror)
821+
gofunc() {
822+
execDone<-inv.Run()
823+
}()
824+
825+
matches:= []struct {
826+
matchstring
827+
writestring
828+
}{
829+
{match:"Upload",write:"yes"},
830+
}
831+
for_,m:=rangematches {
832+
pty.ExpectMatch(m.match)
833+
pty.WriteLine(m.write)
834+
}
835+
836+
require.NoError(t,<-execDone)
837+
838+
// Assert that the template version changed.
839+
templateVersions,err:=client.TemplateVersionsByTemplate(context.Background(), codersdk.TemplateVersionsByTemplateRequest{
840+
TemplateID:template.ID,
841+
})
842+
require.NoError(t,err)
843+
assert.Len(t,templateVersions,2)
844+
assert.NotEqual(t,template.ActiveVersionID,templateVersions[1].ID)
845+
846+
// Assert that the template metadata changed.
847+
updated,err:=client.Template(context.Background(),template.ID)
848+
require.NoError(t,err)
849+
// Changed
850+
assert.Equal(t,desc,updated.Description)
851+
852+
// Should not change
853+
assert.Equal(t,template.Name,updated.Name)
854+
assert.Equal(t,template.DisplayName,updated.DisplayName)
855+
assert.Equal(t,template.Icon,updated.Icon)
856+
assert.Equal(t,template.DefaultTTLMillis,updated.DefaultTTLMillis)
857+
assert.Equal(t,template.AllowUserCancelWorkspaceJobs,updated.AllowUserCancelWorkspaceJobs)
858+
})
711859
}
712860

713861
funccreateEchoResponsesWithTemplateVariables(templateVariables []*proto.TemplateVariable)*echo.Responses {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp