mirror of
https://github.com/yusing/godoxy.git
synced 2025-05-19 20:32:35 +02:00
fix: tests
This commit is contained in:
parent
80e59bb481
commit
62c551c7fe
5 changed files with 40 additions and 13 deletions
|
@ -98,7 +98,7 @@ func TestUserPassLoginCallbackHandler(t *testing.T) {
|
|||
Host: "app.example.com",
|
||||
Body: io.NopCloser(bytes.NewReader(Must(json.Marshal(tt.creds)))),
|
||||
}
|
||||
auth.LoginHandler(w, req)
|
||||
auth.PostAuthCallbackHandler(w, req)
|
||||
if tt.wantErr {
|
||||
ExpectEqual(t, w.Code, http.StatusUnauthorized)
|
||||
} else {
|
||||
|
|
|
@ -13,15 +13,16 @@ func TestNewJSON(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestSaveLoadStore(t *testing.T) {
|
||||
defer clear(stores)
|
||||
|
||||
storesPath = t.TempDir()
|
||||
store := Store[string]("test")
|
||||
store.Store("a", "1")
|
||||
if err := save(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := load(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// reload
|
||||
clear(stores)
|
||||
loaded := Store[string]("test")
|
||||
v, ok := loaded.Load("a")
|
||||
if !ok {
|
||||
|
@ -43,6 +44,8 @@ type testObject struct {
|
|||
func (*testObject) Initialize() {}
|
||||
|
||||
func TestSaveLoadObject(t *testing.T) {
|
||||
defer clear(stores)
|
||||
|
||||
storesPath = t.TempDir()
|
||||
obj := Object[*testObject]("test")
|
||||
obj.I = 1
|
||||
|
@ -50,9 +53,8 @@ func TestSaveLoadObject(t *testing.T) {
|
|||
if err := save(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := load(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// reload
|
||||
clear(stores)
|
||||
loaded := Object[*testObject]("test")
|
||||
if loaded.I != 1 || loaded.S != "1" {
|
||||
t.Fatalf("expected 1, got %d, %s", loaded.I, loaded.S)
|
||||
|
|
|
@ -67,7 +67,7 @@ func TestBackScanner(t *testing.T) {
|
|||
}
|
||||
|
||||
// Create scanner with small chunk size to test chunking
|
||||
scanner := NewBackScanner(mockFile, 10)
|
||||
scanner := NewBackScanner(mockFile, mockFile.MustSize(), 10)
|
||||
|
||||
// Collect all lines
|
||||
var lines [][]byte
|
||||
|
@ -108,7 +108,7 @@ func TestBackScannerWithVaryingChunkSizes(t *testing.T) {
|
|||
t.Fatalf("failed to write to mock file: %v", err)
|
||||
}
|
||||
|
||||
scanner := NewBackScanner(mockFile, chunkSize)
|
||||
scanner := NewBackScanner(mockFile, mockFile.MustSize(), chunkSize)
|
||||
|
||||
var lines [][]byte
|
||||
for scanner.Scan() {
|
||||
|
@ -170,7 +170,8 @@ func TestReset(t *testing.T) {
|
|||
}
|
||||
}
|
||||
linesRead := 0
|
||||
s := NewBackScanner(file, defaultChunkSize)
|
||||
stat, _ := file.Stat()
|
||||
s := NewBackScanner(file, stat.Size(), defaultChunkSize)
|
||||
for s.Scan() {
|
||||
linesRead++
|
||||
}
|
||||
|
@ -199,7 +200,7 @@ func BenchmarkBackScanner(b *testing.B) {
|
|||
}
|
||||
for i := range 14 {
|
||||
chunkSize := (2 << i) * kilobyte
|
||||
scanner := NewBackScanner(mockFile, chunkSize)
|
||||
scanner := NewBackScanner(mockFile, mockFile.MustSize(), chunkSize)
|
||||
name := strutils.FormatByteSize(chunkSize)
|
||||
b.ResetTimer()
|
||||
b.Run(name, func(b *testing.B) {
|
||||
|
@ -226,7 +227,8 @@ func BenchmarkBackScannerRealFile(b *testing.B) {
|
|||
}
|
||||
}
|
||||
|
||||
scanner := NewBackScanner(file, 256*kilobyte)
|
||||
stat, _ := file.Stat()
|
||||
scanner := NewBackScanner(file, stat.Size(), 256*kilobyte)
|
||||
b.ResetTimer()
|
||||
for scanner.Scan() {
|
||||
}
|
||||
|
|
|
@ -17,8 +17,11 @@ type MockFile struct {
|
|||
noLock
|
||||
}
|
||||
|
||||
var _ SupportRotate = (*MockFile)(nil)
|
||||
|
||||
func NewMockFile() *MockFile {
|
||||
f, _ := afero.TempFile(afero.NewMemMapFs(), "", "")
|
||||
f.Seek(0, io.SeekEnd)
|
||||
return &MockFile{
|
||||
File: f,
|
||||
}
|
||||
|
@ -47,3 +50,13 @@ func (m *MockFile) NumLines() int {
|
|||
}
|
||||
return count
|
||||
}
|
||||
|
||||
func (m *MockFile) Size() (int64, error) {
|
||||
stat, _ := m.Stat()
|
||||
return stat.Size(), nil
|
||||
}
|
||||
|
||||
func (m *MockFile) MustSize() int64 {
|
||||
size, _ := m.Size()
|
||||
return size
|
||||
}
|
||||
|
|
|
@ -167,7 +167,17 @@ func TestConvertor(t *testing.T) {
|
|||
|
||||
t.Run("invalid", func(t *testing.T) {
|
||||
m := new(testModel)
|
||||
ExpectError(t, ErrUnsupportedConversion, MapUnmarshalValidate(map[string]any{"Test": struct{}{}}, m))
|
||||
err := MapUnmarshalValidate(map[string]any{"Test": struct{ a int }{1}}, m)
|
||||
ExpectError(t, ErrUnsupportedConversion, err)
|
||||
})
|
||||
|
||||
t.Run("set_empty", func(t *testing.T) {
|
||||
m := testModel{
|
||||
Test: testType{1, "2"},
|
||||
Baz: "3",
|
||||
}
|
||||
ExpectNoError(t, MapUnmarshalValidate(map[string]any{"Test": nil, "Baz": nil}, &m))
|
||||
ExpectEqual(t, m, testModel{})
|
||||
})
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue