feat(site): add auto mode on create workspace form (#8651)

This commit is contained in:
Bruno Quaresma
2023-07-27 08:47:58 -03:00
committed by GitHub
parent bc55ffdf0d
commit f54d385266
16 changed files with 563 additions and 576 deletions
+1
View File
@@ -0,0 +1 @@
export const REFRESH_GITAUTH_BROADCAST_CHANNEL = "gitauth_refresh"
+53
View File
@@ -0,0 +1,53 @@
import { TemplateVersionParameter } from "api/typesGenerated"
import { selectInitialRichParametersValues } from "./richParameters"
test("selectInitialRichParametersValues return default value when default build parameter is not valid", () => {
const templateParameters: TemplateVersionParameter[] = [
{
name: "cpu",
display_name: "CPU",
description: "The number of CPU cores",
description_plaintext: "The number of CPU cores",
type: "string",
mutable: true,
default_value: "2",
icon: "/icon/memory.svg",
options: [
{
name: "2 Cores",
description: "",
value: "2",
icon: "",
},
{
name: "4 Cores",
description: "",
value: "4",
icon: "",
},
{
name: "6 Cores",
description: "",
value: "6",
icon: "",
},
{
name: "8 Cores",
description: "",
value: "8",
icon: "",
},
],
required: false,
ephemeral: false,
},
]
const cpuParameter = templateParameters[0]
const [cpuParameterInitialValue] = selectInitialRichParametersValues(
templateParameters,
[{ name: cpuParameter.name, value: "100" }],
)
expect(cpuParameterInitialValue.value).toBe(cpuParameter.default_value)
})
+22 -5
View File
@@ -7,7 +7,7 @@ import * as Yup from "yup"
export const selectInitialRichParametersValues = (
templateParameters?: TemplateVersionParameter[],
defaultValuesFromQuery?: Record<string, string>,
defaultBuildParameters?: WorkspaceBuildParameter[],
): WorkspaceBuildParameter[] => {
const defaults: WorkspaceBuildParameter[] = []
if (!templateParameters) {
@@ -19,9 +19,20 @@ export const selectInitialRichParametersValues = (
if (parameter.options.length > 0) {
parameterValue = parameterValue ?? parameter.options[0].value
const validValues = parameter.options.map((option) => option.value)
if (defaultValuesFromQuery && defaultValuesFromQuery[parameter.name]) {
parameterValue = defaultValuesFromQuery[parameter.name]
if (defaultBuildParameters) {
const defaultBuildParameter = defaultBuildParameters.find(
(p) => p.name === parameter.name,
)
// We don't want invalid values from default parameters to be set
if (
defaultBuildParameter &&
validValues.includes(defaultBuildParameter.value)
) {
parameterValue = defaultBuildParameter?.value
}
}
const buildParameter: WorkspaceBuildParameter = {
@@ -36,8 +47,14 @@ export const selectInitialRichParametersValues = (
parameterValue = parameter.default_value
}
if (defaultValuesFromQuery && defaultValuesFromQuery[parameter.name]) {
parameterValue = defaultValuesFromQuery[parameter.name]
if (defaultBuildParameters) {
const buildParameter = defaultBuildParameters.find(
(p) => p.name === parameter.name,
)
if (buildParameter) {
parameterValue = buildParameter?.value
}
}
const buildParameter: WorkspaceBuildParameter = {
+1 -1
View File
@@ -286,6 +286,6 @@ export const hasJobError = (workspace: TypesGen.Workspace) => {
return workspace.latest_build.job.error !== undefined
}
export const paramUsedToCreateWorkspace = (
export const paramsUsedToCreateWorkspace = (
param: TypesGen.TemplateVersionParameter,
) => !param.ephemeral