mirror of
https://git.vectorsigma.ru/public/atlantis.git
synced 2026-07-29 01:38:30 +00:00
96 lines
1.8 KiB
Go
96 lines
1.8 KiB
Go
package runtime_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/runatlantis/atlantis/server/core/runtime"
|
|
. "github.com/runatlantis/atlantis/testing"
|
|
)
|
|
|
|
func TestGetPlanFilename(t *testing.T) {
|
|
cases := []struct {
|
|
workspace string
|
|
projectName string
|
|
exp string
|
|
}{
|
|
{
|
|
"workspace",
|
|
"",
|
|
"workspace.tfplan",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project",
|
|
"project-workspace.tfplan",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project/with/slash",
|
|
"project::with::slash-workspace.tfplan",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project with space",
|
|
"project with space-workspace.tfplan",
|
|
},
|
|
{
|
|
"workspace😀",
|
|
"project😀",
|
|
"project😀-workspace😀.tfplan",
|
|
},
|
|
// Previously we replaced invalid chars with -'s, however we now
|
|
// rely on validation of the atlantis.yaml file to ensure the name's
|
|
// don't contain chars that need to be url encoded. So now these
|
|
// chars shouldn't get replaced.
|
|
{
|
|
"default",
|
|
`all.invalid.chars \/"*?<>`,
|
|
"all.invalid.chars \\::\"*?<>-default.tfplan",
|
|
},
|
|
}
|
|
|
|
for i, c := range cases {
|
|
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
|
|
Equals(t, c.exp, runtime.GetPlanFilename(c.workspace, c.projectName))
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestProjectNameFromPlanfile(t *testing.T) {
|
|
cases := []struct {
|
|
workspace string
|
|
filename string
|
|
exp string
|
|
}{
|
|
{
|
|
"workspace",
|
|
"workspace.tfplan",
|
|
"",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project-workspace.tfplan",
|
|
"project",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project-workspace-workspace.tfplan",
|
|
"project-workspace",
|
|
},
|
|
{
|
|
"workspace",
|
|
"project::with::slashes::-workspace.tfplan",
|
|
"project/with/slashes/",
|
|
},
|
|
}
|
|
|
|
for i, c := range cases {
|
|
t.Run(fmt.Sprintf("case %d", i), func(t *testing.T) {
|
|
act, err := runtime.ProjectNameFromPlanfile(c.workspace, c.filename)
|
|
Ok(t, err)
|
|
Equals(t, c.exp, act)
|
|
})
|
|
}
|
|
}
|