github.com/Accefy/pop@v0.0.0-20230428174248-e9f677eab5b9/genny/model/options_test.go (about) 1 package model 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func Test_Options_Validate(t *testing.T) { 10 r := require.New(t) 11 12 opts := &Options{} 13 err := opts.Validate() 14 r.Error(err) 15 16 opts.Name = "widget" 17 18 err = opts.Validate() 19 r.NoError(err) 20 r.Equal(0, len(opts.Attrs)) 21 r.Equal("models", opts.Path) 22 r.Equal("models", opts.Package) 23 r.Equal("models", opts.TestPackage) 24 r.Equal("json", opts.Encoding) 25 26 // Force ID opt 27 opts.ForceDefaultID = true 28 err = opts.Validate() 29 r.NoError(err) 30 r.Equal(1, len(opts.Attrs)) 31 r.Equal("id", opts.Attrs[0].Name.String()) 32 33 // Force default timestamps 34 opts.ForceDefaultTimestamps = true 35 err = opts.Validate() 36 r.NoError(err) 37 38 r.Equal(3, len(opts.Attrs)) 39 r.Equal("created_at", opts.Attrs[1].Name.String()) 40 r.Equal("updated_at", opts.Attrs[2].Name.String()) 41 }