64 lines
1.6 KiB
Go
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")
|
|
}
|