Some checks are pending
Docs Deploy / build_and_deploy (push) Waiting to run
Generate Docs / cli (push) Waiting to run
Generate Config Doc / cli (push) Waiting to run
Go formatting / go-formatting (push) Waiting to run
Check links / markdown-link-check (push) Waiting to run
Integration / pre-test (push) Waiting to run
Integration / test on (push) Blocked by required conditions
Integration / status (push) Blocked by required conditions
Lint / Lint Go code (push) Waiting to run
Test / test (ubuntu-latest) (push) Waiting to run
83 lines
2.5 KiB
Go
83 lines
2.5 KiB
Go
package xgenny_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/ignite/cli/v29/ignite/pkg/xgenny"
|
|
)
|
|
|
|
var (
|
|
modifiedExample = []string{"mfoo", "mbar", "mfoobar"}
|
|
createdExample = []string{"cfoo", "cbar", "cfoobar"}
|
|
)
|
|
|
|
func sourceModificationExample() xgenny.SourceModification {
|
|
sourceModification := xgenny.NewSourceModification()
|
|
sourceModification.AppendModifiedFiles(modifiedExample...)
|
|
sourceModification.AppendCreatedFiles(createdExample...)
|
|
return sourceModification
|
|
}
|
|
|
|
func TestNewSourceModification(t *testing.T) {
|
|
sm := xgenny.NewSourceModification()
|
|
require.Empty(t, sm.ModifiedFiles())
|
|
require.Empty(t, sm.CreatedFiles())
|
|
}
|
|
|
|
func TestModifiedFiles(t *testing.T) {
|
|
sm := sourceModificationExample()
|
|
require.Len(t, sm.ModifiedFiles(), len(modifiedExample))
|
|
require.Subset(t, sm.ModifiedFiles(), modifiedExample)
|
|
}
|
|
|
|
func TestCreatedFiles(t *testing.T) {
|
|
sm := sourceModificationExample()
|
|
require.Len(t, sm.CreatedFiles(), len(createdExample))
|
|
require.Subset(t, sm.CreatedFiles(), createdExample)
|
|
}
|
|
|
|
func TestAppendModifiedFiles(t *testing.T) {
|
|
sm := sourceModificationExample()
|
|
sm.AppendModifiedFiles("foo1")
|
|
require.Len(t, sm.ModifiedFiles(), len(modifiedExample)+1)
|
|
require.Contains(t, sm.ModifiedFiles(), "foo1")
|
|
|
|
// Do not append a existing element
|
|
sm.AppendModifiedFiles("foo1")
|
|
require.Len(t, sm.ModifiedFiles(), len(modifiedExample)+1)
|
|
sm.AppendCreatedFiles("foo2")
|
|
sm.AppendModifiedFiles("foo2")
|
|
require.Len(t, sm.ModifiedFiles(), len(modifiedExample)+1)
|
|
}
|
|
|
|
func TestAppendCreatedFiles(t *testing.T) {
|
|
sm := sourceModificationExample()
|
|
sm.AppendCreatedFiles("foo1")
|
|
require.Len(t, sm.CreatedFiles(), len(createdExample)+1)
|
|
require.Contains(t, sm.CreatedFiles(), "foo1")
|
|
|
|
// Do not append a existing element
|
|
sm.AppendCreatedFiles("foo1")
|
|
require.Len(t, sm.CreatedFiles(), len(createdExample)+1)
|
|
sm.AppendModifiedFiles("foo2")
|
|
sm.AppendCreatedFiles("foo2")
|
|
require.Len(t, sm.ModifiedFiles(), len(modifiedExample)+1)
|
|
}
|
|
|
|
func TestMerge(t *testing.T) {
|
|
sm1 := xgenny.NewSourceModification()
|
|
sm2 := xgenny.NewSourceModification()
|
|
|
|
sm1.AppendModifiedFiles("foo1", "foo2", "foo3")
|
|
sm2.AppendModifiedFiles("foo3", "foo4", "foo5")
|
|
sm1.AppendCreatedFiles("bar1", "bar2", "bar3")
|
|
sm2.AppendCreatedFiles("foo1", "bar2", "bar3")
|
|
|
|
sm1.Merge(sm2)
|
|
require.Len(t, sm1.ModifiedFiles(), 5)
|
|
require.Len(t, sm1.CreatedFiles(), 3)
|
|
require.Subset(t, sm1.ModifiedFiles(), []string{"foo1", "foo2", "foo3", "foo4", "foo5"})
|
|
require.Subset(t, sm1.CreatedFiles(), []string{"bar1", "bar2", "bar3"})
|
|
}
|