go-scm/cmd/scm/cmd_export_test.go
Virgil 8292f3ae79
Some checks failed
Security Scan / security (push) Failing after 13s
Test / test (push) Successful in 2m12s
fix(cmd/scm): avoid masking invalid core.json
Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-02 07:20:33 +00:00

64 lines
1.6 KiB
Go

// SPDX-License-Identifier: EUPL-1.2
package scm
import (
filepath "dappco.re/go/core/scm/internal/ax/filepathx"
os "dappco.re/go/core/scm/internal/ax/osx"
"testing"
"dappco.re/go/core/scm/manifest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestRunExport_Good_CompiledManifest_Good(t *testing.T) {
dir := t.TempDir()
cm := &manifest.CompiledManifest{
Manifest: manifest.Manifest{
Code: "compiled-mod",
Name: "Compiled Module",
Version: "1.0.0",
},
Commit: "abc123",
}
data, err := manifest.MarshalJSON(cm)
require.NoError(t, err)
require.NoError(t, os.WriteFile(filepath.Join(dir, "core.json"), data, 0644))
err = runExport(dir)
require.NoError(t, err)
}
func TestRunExport_Good_FallsBackToSource_Good(t *testing.T) {
dir := t.TempDir()
coreDir := filepath.Join(dir, ".core")
require.NoError(t, os.MkdirAll(coreDir, 0755))
require.NoError(t, os.WriteFile(filepath.Join(coreDir, "manifest.yaml"), []byte(`
code: source-mod
name: Source Module
version: 1.0.0
`), 0644))
err := runExport(dir)
require.NoError(t, err)
}
func TestRunExport_Bad_InvalidCompiledManifest_Good(t *testing.T) {
dir := t.TempDir()
coreDir := filepath.Join(dir, ".core")
require.NoError(t, os.MkdirAll(coreDir, 0755))
require.NoError(t, os.WriteFile(filepath.Join(coreDir, "manifest.yaml"), []byte(`
code: source-mod
name: Source Module
version: 1.0.0
`), 0644))
require.NoError(t, os.WriteFile(filepath.Join(dir, "core.json"), []byte("{not-json"), 0644))
err := runExport(dir)
require.Error(t, err)
assert.Contains(t, err.Error(), "manifest.ParseCompiled")
}