Files
Gumble-Backend/scripts/internal/scaffold/scaffold_test.go
Zane Walker 7e940c83a7
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
(Feat): Initial Commit
2026-07-03 19:41:31 +05:30

87 lines
2.7 KiB
Go

//go:build scripts
package scaffold_test
import (
"os"
"path/filepath"
"testing"
"allaboutapps.dev/aw/go-starter/internal/test"
"allaboutapps.dev/aw/go-starter/internal/util"
"allaboutapps.dev/aw/go-starter/scripts/internal/scaffold"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
var (
resourcePath = "testdata/test_resource.txt"
definitionsPath = "testdata/definitions"
pathsPath = "testdata/paths"
handlerPath = "testdata/testresource"
modulePath = filepath.Join(util.GetProjectRootDir(), "go.mod")
defaultMethods = []string{"get-all", "get", "post", "put", "delete"}
)
func TestParseModel_Success(t *testing.T) {
// Execute
resource, err := scaffold.ParseModel(resourcePath)
// Assert
require.NoError(t, err)
test.Snapshoter.Save(t, resource)
}
func TestGenerateSwagger_Success(t *testing.T) {
// Setup
resource, err := scaffold.ParseModel(resourcePath)
require.NoError(t, err)
// Execute
err = scaffold.GenerateSwagger(resource, "testdata", true)
// Assert
require.NoError(t, err)
assert.DirExists(t, definitionsPath, "Should create the definitions directory")
assert.DirExists(t, pathsPath, "Should create the paths directory")
assert.FileExists(t, filepath.Join(definitionsPath, "testresource.yml"), "Should generate the definition spec")
assert.FileExists(t, filepath.Join(pathsPath, "testresource.yml"), "Should generate the paths spec")
// Cleanup
err = os.RemoveAll(definitionsPath)
require.NoError(t, err)
err = os.RemoveAll(pathsPath)
require.NoError(t, err)
}
func TestGenerateHandlers_Success(t *testing.T) {
// Setup
resource, err := scaffold.ParseModel(resourcePath)
require.NoError(t, err)
err = scaffold.GenerateSwagger(resource, "testdata", true)
require.NoError(t, err)
// Execute
err = scaffold.GenerateHandlers(resource, "testdata", modulePath, defaultMethods, true)
// Assert
require.NoError(t, err)
assert.DirExists(t, handlerPath, "Should create the handler directory")
assert.FileExists(t, filepath.Join(handlerPath, "get_testresource_list.go"), "Should create the GET list handler")
assert.FileExists(t, filepath.Join(handlerPath, "get_testresource.go"), "Should create the GET handler")
assert.FileExists(t, filepath.Join(handlerPath, "post_testresource.go"), "Should create the POST handler")
assert.FileExists(t, filepath.Join(handlerPath, "put_testresource.go"), "Should create the PUT handler")
assert.FileExists(t, filepath.Join(handlerPath, "delete_testresource.go"), "Should create the DELETE handler")
// Cleanup
err = os.RemoveAll(definitionsPath)
require.NoError(t, err)
err = os.RemoveAll(pathsPath)
require.NoError(t, err)
err = os.RemoveAll(handlerPath)
require.NoError(t, err)
}