From aae0ca51c23bbdea61b4328e243a8da82234ff66 Mon Sep 17 00:00:00 2001 From: j2gg0s Date: Wed, 18 Sep 2024 11:12:47 +0800 Subject: [PATCH] test(internal/parser): fix case for Skip&SkipPrefix --- internal/parser/parser_test.go | 29 +++++++++++++++++++---------- schema/append_value.go | 4 ++-- schema/scan.go | 2 +- schema/table.go | 2 +- schema/zerochecker.go | 2 +- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/internal/parser/parser_test.go b/internal/parser/parser_test.go index 6a8b4a82..9d8d7c0f 100644 --- a/internal/parser/parser_test.go +++ b/internal/parser/parser_test.go @@ -1,6 +1,7 @@ package parser import ( + "fmt" "testing" "github.com/stretchr/testify/require" @@ -140,7 +141,7 @@ func TestParser_Skip(t *testing.T) { name string fields fields args args - want bool + want error idAfterSkip int }{ { @@ -152,7 +153,7 @@ func TestParser_Skip(t *testing.T) { args: args{ skip: '?', }, - want: true, + want: nil, idAfterSkip: 1, }, { @@ -164,7 +165,7 @@ func TestParser_Skip(t *testing.T) { args: args{ skip: '!', }, - want: false, + want: fmt.Errorf("got %q, wanted %q", '?', '!'), idAfterSkip: 0, }, } @@ -174,12 +175,20 @@ func TestParser_Skip(t *testing.T) { b: tt.fields.b, i: tt.fields.i, } - require.Equal(t, tt.want, p.Skip(tt.args.skip)) + equalError(t, tt.want, p.Skip(tt.args.skip)) }) } } -func TestParser_SkipBytes(t *testing.T) { +func equalError(t *testing.T, want, got error) { + if want != nil && got != nil { + require.Equal(t, want.Error(), got.Error()) + return + } + require.Equal(t, want, got) +} + +func TestParser_SkipPrefix(t *testing.T) { type fields struct { b []byte i int @@ -191,7 +200,7 @@ func TestParser_SkipBytes(t *testing.T) { name string fields fields args args - want bool + want error idAfterSkip int }{ { @@ -203,7 +212,7 @@ func TestParser_SkipBytes(t *testing.T) { args: args{ skip: []byte("? = "), }, - want: true, + want: nil, idAfterSkip: 4, }, { @@ -215,7 +224,7 @@ func TestParser_SkipBytes(t *testing.T) { args: args{ skip: []byte("hoge"), }, - want: false, + want: fmt.Errorf(`got "? = ?", wanted prefix "hoge"`), idAfterSkip: 0, }, { @@ -227,7 +236,7 @@ func TestParser_SkipBytes(t *testing.T) { args: args{ skip: []byte("? = ? hoge"), }, - want: false, + want: fmt.Errorf(`got "? = ?", wanted prefix "? = ? hoge"`), idAfterSkip: 0, }, } @@ -237,7 +246,7 @@ func TestParser_SkipBytes(t *testing.T) { b: tt.fields.b, i: tt.fields.i, } - require.Equal(t, tt.want, p.SkipBytes(tt.args.skip)) + equalError(t, tt.want, p.SkipPrefix(tt.args.skip)) require.Equal(t, tt.idAfterSkip, p.i) }) } diff --git a/schema/append_value.go b/schema/append_value.go index 1457aab6..48a0761b 100644 --- a/schema/append_value.go +++ b/schema/append_value.go @@ -67,7 +67,7 @@ func FieldAppender(dialect Dialect, field *Field) AppenderFunc { } if fieldType.Kind() != reflect.Ptr { - if reflect.PtrTo(fieldType).Implements(driverValuerType) { + if reflect.PointerTo(fieldType).Implements(driverValuerType) { return addrAppender(appendDriverValue) } } @@ -123,7 +123,7 @@ func appender(dialect Dialect, typ reflect.Type) AppenderFunc { } if kind != reflect.Ptr { - ptr := reflect.PtrTo(typ) + ptr := reflect.PointerTo(typ) if ptr.Implements(queryAppenderType) { return addrAppender(appendQueryAppenderValue) } diff --git a/schema/scan.go b/schema/scan.go index 48574800..4da160da 100644 --- a/schema/scan.go +++ b/schema/scan.go @@ -111,7 +111,7 @@ func scanner(typ reflect.Type) ScannerFunc { } if kind != reflect.Ptr { - ptr := reflect.PtrTo(typ) + ptr := reflect.PointerTo(typ) if ptr.Implements(scannerType) { return addrScanner(scanScanner) } diff --git a/schema/table.go b/schema/table.go index 9806c999..79388fb1 100644 --- a/schema/table.go +++ b/schema/table.go @@ -100,7 +100,7 @@ func (table *Table) init(dialect Dialect, typ reflect.Type, canAddr bool) { {afterScanRowHookType, afterScanRowHookFlag}, } - typ = reflect.PtrTo(table.Type) + typ = reflect.PointerTo(table.Type) for _, hook := range hooks { if typ.Implements(hook.typ) { table.flags = table.flags.Set(hook.flag) diff --git a/schema/zerochecker.go b/schema/zerochecker.go index f24e51d3..7c1f088c 100644 --- a/schema/zerochecker.go +++ b/schema/zerochecker.go @@ -60,7 +60,7 @@ func zeroChecker(typ reflect.Type) IsZeroerFunc { kind := typ.Kind() if kind != reflect.Ptr { - ptr := reflect.PtrTo(typ) + ptr := reflect.PointerTo(typ) if ptr.Implements(isZeroerType) { return addrChecker(isZeroInterface) }