-
Notifications
You must be signed in to change notification settings - Fork 72
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix ability to import the CLI repository as module (#1671)
## Changes While investigating #1629, I found that Go doesn't allow characters outside the set documented at https://pkg.go.dev/golang.org/x/mod/module#CheckFilePath. To fix this, I changed the relevant test case to create the fixtures it needs instead of loading it from the `testdata` directory (in `renderer_test.go`). Some test cases in `config_test.go` depended on templated paths without needing to do so. In the process of fixing this, I refactored these tests slightly to reduce dependencies between them. This change also adds a test case to ensure that all files in the repository are allowed to be part of a module (per the earlier `CheckFilePath` function). Fixes #1629. ## Tests I manually confirmed I could import the repository as a Go module.
- Loading branch information
Showing
16 changed files
with
296 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package testutil | ||
|
||
import ( | ||
"io" | ||
"io/fs" | ||
"os" | ||
"path/filepath" | ||
"testing" | ||
|
||
"github.com/stretchr/testify/require" | ||
) | ||
|
||
// CopyDirectory copies the contents of a directory to another directory. | ||
// The destination directory is created if it does not exist. | ||
func CopyDirectory(t *testing.T, src, dst string) { | ||
err := filepath.WalkDir(src, func(path string, d fs.DirEntry, err error) error { | ||
if err != nil { | ||
return err | ||
} | ||
|
||
rel, err := filepath.Rel(src, path) | ||
require.NoError(t, err) | ||
|
||
if d.IsDir() { | ||
return os.MkdirAll(filepath.Join(dst, rel), 0755) | ||
} | ||
|
||
// Copy the file to the temporary directory | ||
in, err := os.Open(path) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
defer in.Close() | ||
|
||
out, err := os.Create(filepath.Join(dst, rel)) | ||
if err != nil { | ||
return err | ||
} | ||
|
||
defer out.Close() | ||
|
||
_, err = io.Copy(out, in) | ||
return err | ||
}) | ||
|
||
require.NoError(t, err) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
24 changes: 24 additions & 0 deletions
24
libs/template/testdata/config-assign-from-default-value/schema.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
{ | ||
"properties": { | ||
"int_val": { | ||
"type": "integer", | ||
"description": "This is an integer value", | ||
"default": 123 | ||
}, | ||
"float_val": { | ||
"type": "number", | ||
"description": "This is a float value", | ||
"default": 123 | ||
}, | ||
"bool_val": { | ||
"type": "boolean", | ||
"description": "This is a boolean value", | ||
"default": true | ||
}, | ||
"string_val": { | ||
"type": "string", | ||
"description": "This is a string value", | ||
"default": "hello" | ||
} | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
libs/template/testdata/config-assign-from-file-invalid-int/schema.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"properties": { | ||
"int_val": { | ||
"type": "integer", | ||
"description": "This is an integer value" | ||
}, | ||
"float_val": { | ||
"type": "number", | ||
"description": "This is a float value" | ||
}, | ||
"bool_val": { | ||
"type": "boolean", | ||
"description": "This is a boolean value" | ||
}, | ||
"string_val": { | ||
"type": "string", | ||
"description": "This is a string value" | ||
} | ||
} | ||
} |
Oops, something went wrong.