feat: test duplicate project and env name

This commit is contained in:
2025-09-28 11:05:41 +05:30
parent 9eaa34d7fe
commit bc67eae7c7
2 changed files with 26 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ package cmd
import ( import (
"envy/cmd/utils" "envy/cmd/utils"
"errors"
"fmt" "fmt"
"os" "os"
"path" "path"
@@ -42,12 +43,23 @@ var createCmd = &cobra.Command{
environment := "" environment := ""
envs, err := utils.GetEnvironments(dbProject.ID)
utils.StopIfErr(err)
form := huh.NewForm( form := huh.NewForm(
huh.NewGroup( huh.NewGroup(
huh.NewInput(). huh.NewInput().
Title("Environment name"). Title("Environment name").
Prompt("? "). Prompt("? ").
Validate(utils.NoSpace). Validate(utils.NoSpace).
Validate(func(input string) error {
for _, en := range envs {
if en.Name == input {
return errors.New("this name is used")
}
}
return nil
}).
Value(&environment), Value(&environment),
), ),
) )
@@ -86,6 +98,9 @@ var createCmd = &cobra.Command{
return return
} }
dbProjects, err := utils.GetProjects()
utils.StopIfErr(err)
project := "" project := ""
environment := "" environment := ""
@@ -95,6 +110,14 @@ var createCmd = &cobra.Command{
Title("Project name"). Title("Project name").
Prompt("? "). Prompt("? ").
Validate(utils.NoSpace). Validate(utils.NoSpace).
Validate(func(input string) error {
for _, pr := range dbProjects {
if pr.Name == input {
return errors.New("this name is used")
}
}
return nil
}).
Value(&project), Value(&project),
huh.NewInput(). huh.NewInput().
@@ -105,7 +128,7 @@ var createCmd = &cobra.Command{
), ),
) )
err := form.Run() err = form.Run()
if err != nil { if err != nil {
utils.ErrPrint("Some error occured:", err.Error()) utils.ErrPrint("Some error occured:", err.Error())
} }

View File

@@ -42,11 +42,11 @@ func MigrateDb() {
} }
} }
func GetProjects(name string) ([]Project, error) { func GetProjects() ([]Project, error) {
InitDb() InitDb()
var dbProjects []Project var dbProjects []Project
result := DB.Where("name = ?", name).Find(&dbProjects) result := DB.Find(&dbProjects)
if result.Error != nil { if result.Error != nil {
return nil, errors.New("Some error occured: " + result.Error.Error()) return nil, errors.New("Some error occured: " + result.Error.Error())