mukan-ignite/ignite/pkg/xgenny/sourcemodification_test.go
Mukan Erkin Törük c32551b6f7
Some checks failed
Docs Deploy / build_and_deploy (push) Has been cancelled
Generate Docs / cli (push) Has been cancelled
Generate Config Doc / cli (push) Has been cancelled
Go formatting / go-formatting (push) Has been cancelled
Check links / markdown-link-check (push) Has been cancelled
Integration / pre-test (push) Has been cancelled
Integration / test on (push) Has been cancelled
Integration / status (push) Has been cancelled
Lint / Lint Go code (push) Has been cancelled
Test / test (ubuntu-latest) (push) Has been cancelled
refactor: replace all github.com upstream refs with git.cw.tr/mukan-network
2026-05-11 03:36:24 +03:00

83 lines
2.5 KiB
Go

package xgenny_test
import (
"testing"
"github.com/stretchr/testify/require"
"git.cw.tr/mukan-network/mukan-ignite/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"})
}