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

feat(coderd): support ephemeral parameters#8367

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
mtojek merged 23 commits intomainfrom6828-support-ephemeral-parameters
Jul 10, 2023
Merged
Changes from1 commit
Commits
Show all changes
23 commits
Select commitHold shift + click to select a range
ef50c35
WIP
mtojekJul 7, 2023
de38911
WIP2
mtojekJul 7, 2023
3239d07
Merge branch 'main' into 6828-support-ephemeral-parameters
mtojekJul 7, 2023
469fcc2
fix
mtojekJul 7, 2023
712519f
fix
mtojekJul 7, 2023
ec04dc5
cleanup
mtojekJul 7, 2023
f1f3a0a
Refs to ephemeral
mtojekJul 7, 2023
533dde3
fix: frontend
mtojekJul 7, 2023
97df39f
fmt
mtojekJul 7, 2023
4ff2705
make gen
mtojekJul 7, 2023
f826d99
resolver: if not ephemeral
mtojekJul 7, 2023
cc20564
Merge branch 'main' into 6828-support-ephemeral-parameters
mtojekJul 10, 2023
35321fc
ParameterResolver tests
mtojekJul 10, 2023
feceec3
WIP
mtojekJul 10, 2023
e8cd16d
Tests: resources
mtojekJul 10, 2023
ffb7b94
fmt
mtojekJul 10, 2023
85044d3
Long ephemeral test
mtojekJul 10, 2023
3636b70
Merge branch 'main' into 6828-support-ephemeral-parameters
mtojekJul 10, 2023
343c87e
remove debug
mtojekJul 10, 2023
38eacbf
fix: go.mod
mtojekJul 10, 2023
8e73da8
go mod tidy
mtojekJul 10, 2023
dffefb6
Merge branch 'main' into 6828-support-ephemeral-parameters
mtojekJul 10, 2023
69e46ee
rename to ephemeralParameter
mtojekJul 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
PrevPrevious commit
NextNext commit
ParameterResolver tests
  • Loading branch information
@mtojek
mtojek committedJul 10, 2023
commit35321fc3aa3262d7bc75a166ab4be8d9563a0fd8
86 changes: 86 additions & 0 deletionscodersdk/richparameters_test.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -304,3 +304,89 @@ func TestRichParameterValidation(t *testing.T) {
}
})
}

func TestParameterResolver_ValidateResolve_Ephemeral_OverridePrevious(t *testing.T) {
t.Parallel()
uut := codersdk.ParameterResolver{
Rich: []codersdk.WorkspaceBuildParameter{{Name: "n", Value: "5"}},
}
p := codersdk.TemplateVersionParameter{
Name: "n",
Type: "number",
Mutable: true,
Required: true,
Ephemeral: true,
}
v, err := uut.ValidateResolve(p, &codersdk.WorkspaceBuildParameter{
Name: "n",
Value: "6",
})
require.NoError(t, err)
require.Equal(t, "6", v)
}

func TestParameterResolver_ValidateResolve_Ephemeral_FirstTime(t *testing.T) {
t.Parallel()
uut := codersdk.ParameterResolver{}
p := codersdk.TemplateVersionParameter{
Name: "n",
Type: "number",
Mutable: true,
Required: true,
Ephemeral: true,
Comment on lines +335 to +336
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

This is an interesting use-case - a required ephemeral value could be the equivalent of a TOS checkbox when building a workspace e.g. "I solemnly swear to not use this workspace for evil. [x]"

mtojek reacted with laugh emoji
}
v, err := uut.ValidateResolve(p, &codersdk.WorkspaceBuildParameter{
Name: "n",
Value: "6",
})
require.NoError(t, err)
require.Equal(t, "6", v)
}

func TestParameterResolver_ValidateResolve_Ephemeral_UseDefault(t *testing.T) {
t.Parallel()
uut := codersdk.ParameterResolver{}
p := codersdk.TemplateVersionParameter{
Name: "n",
Type: "number",
Mutable: true,
DefaultValue: "5",
Ephemeral: true,
}
v, err := uut.ValidateResolve(p, nil)
require.NoError(t, err)
require.Equal(t, "5", v)
}

func TestParameterResolver_ValidateResolve_Ephemeral_UseEmptyDefault(t *testing.T) {
t.Parallel()
uut := codersdk.ParameterResolver{}
p := codersdk.TemplateVersionParameter{
Name: "n",
Type: "number",
Mutable: true,
DefaultValue: "",
Ephemeral: true,
}
v, err := uut.ValidateResolve(p, nil)
require.NoError(t, err)
require.Equal(t, "", v)
}

func TestParameterResolver_ValidateResolve_Ephemeral_RequiredButMissing(t *testing.T) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

What about a case where required = true, but there's also a default value set? Is this possible and should we test it?

Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

It is not possible asrequired is a computed property, the opposite ofoptional, convertedhere.

mafredri reacted with thumbs up emoji
t.Parallel()
uut := codersdk.ParameterResolver{}
p := codersdk.TemplateVersionParameter{
Name: "n",
Type: "number",
Mutable: true,
Required: true,
Ephemeral: true,
}
// It is more theoretical than practical case. Schema allows to configure a parameter,
// which always requires from initiator to provide the value, but it is not persisted between
// consecutive workspace builds.
v, err := uut.ValidateResolve(p, nil)
require.Error(t, err) // Parameter is required, but not provided.
require.Equal(t, "", v)
}

[8]ページ先頭

©2009-2025 Movatter.jp