joyful/internal/mappingrules/mapping_rule_base_test.go
Anna Rose Wiggins 712dcdbc07 Add more tests (#4)
This also refactors some of the code parsing logic.

Reviewed-on: #4
Co-authored-by: Anna Rose Wiggins <annabunches@gmail.com>
Co-committed-by: Anna Rose Wiggins <annabunches@gmail.com>
2025-07-17 17:02:30 +00:00

53 lines
1.1 KiB
Go

package mappingrules
import (
"testing"
"github.com/stretchr/testify/suite"
)
type MappingRuleBaseTests struct {
suite.Suite
}
func TestRunnerMappingRuleBaseTests(t *testing.T) {
suite.Run(t, new(MappingRuleBaseTests))
}
func (t *MappingRuleBaseTests) TestNewMappingRuleBase() {
t.Run("No Modes", func() {
base := NewMappingRuleBase("foo", []string{})
t.Equal("foo", base.Name)
t.EqualValues([]string{"*"}, base.Modes)
})
t.Run("Has Modes", func() {
base := NewMappingRuleBase("foo", []string{"bar", "baz"})
t.Equal("foo", base.Name)
t.Contains(base.Modes, "bar")
t.Contains(base.Modes, "baz")
t.NotContains(base.Modes, "*")
})
}
func (t *MappingRuleBaseTests) TestModeCheck() {
t.Run("* works on all modes", func() {
base := NewMappingRuleBase("", []string{})
mode := "bar"
t.True(base.modeCheck(&mode))
mode = "baz"
t.True(base.modeCheck(&mode))
})
t.Run("single mode only works in that mode", func() {
base := NewMappingRuleBase("", []string{"bar"})
mode := "bar"
t.True(base.modeCheck(&mode))
mode = "baz"
t.False(base.modeCheck(&mode))
})
t.Run("multiple modes work in each mode", func() {
})
}