тестирование

main
parent 8345ba6dd3
commit a8db62bc00

@ -5,7 +5,10 @@ go 1.21.0
require (
github.com/go-sql-driver/mysql v1.7.1
github.com/jmoiron/sqlx v1.3.5
github.com/kataras/pio v0.0.13
github.com/kataras/golog v0.1.11
)
require golang.org/x/sys v0.13.0 // indirect
require (
github.com/kataras/pio v0.0.13 // indirect
golang.org/x/sys v0.13.0 // indirect
)

@ -3,6 +3,8 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
github.com/kataras/golog v0.1.11 h1:dGkcCVsIpqiAMWTlebn/ZULHxFvfG4K43LF1cNWSh20=
github.com/kataras/golog v0.1.11/go.mod h1:mAkt1vbPowFUuUGvexyQ5NFW6djEgGyxQBIARJ0AH4A=
github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM=
github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM=
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=

@ -8,18 +8,17 @@ package seaweed
import (
"errors"
"flag"
"fmt"
"os"
_ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx"
"github.com/kataras/pio"
// "github.com/kataras/pio"
"github.com/kataras/golog"
)
// глобальная переменная для логирования
var p = pio.NewTextPrinter("color", os.Stdout)
const VERSION = "v1.0.7"
// ============= SEA ============
@ -29,9 +28,11 @@ type Sea struct {
}
// Connect to database and connect to weed
func Connect() (*Sea, error) {
debug := flag.Bool("debug", false, "enable debug mode")
fmt.Printf("debug: %v\n", *debug)
func Connect(options ...bool) (*Sea, error) {
debug := false
if len(options) > 0 && options[0] == true {
debug = true
}
user := os.Getenv("SEA_USER")
if user == "" {
@ -48,11 +49,12 @@ func Connect() (*Sea, error) {
return nil, err
}
if *debug {
p.Println(pio.Rich("БД sea успешно открыта", pio.Blue))
sea := Sea{db: db, debug: debug}
if debug {
golog.Infof("БД \"sea\" успешно открыта. %s", VERSION)
}
sea := Sea{db: db, debug: *debug}
return &sea, nil
}
@ -83,5 +85,9 @@ func (s *Sea) Albums() ([]Album, error) {
if err != nil {
return nil, err
}
if s.debug {
golog.Infof("Получен список альбомов: %d", len(albums))
}
return albums, nil
}

@ -7,30 +7,61 @@
package seaweed
import (
"reflect"
"os"
"testing"
_ "github.com/go-sql-driver/mysql"
)
func TestConnect(t *testing.T) {
tests := []struct {
name string
want *Sea
wantErr bool
}{
// TODO: Add test cases.
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := Connect()
if (err != nil) != tt.wantErr {
t.Errorf("Connect() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("Connect() = %v, want %v", got, tt.want)
t.Run("проверка создания", func(t *testing.T) {
user := os.Getenv("SEA_USER")
if user == "" {
t.Errorf("Не установлена env-переменная SEA_USER")
}
password := os.Getenv("SEA_PASSWORD")
if password == "" {
t.Errorf("Не установлена env-переменная SEA_PASSWORD")
}
// создание с признаком отладки
sea, err := Connect(true)
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
if sea.debug == false {
t.Errorf("Не установлен признак отладки")
}
// штатное создание
sea2, err := Connect()
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
if sea2.debug == true {
t.Errorf("Не правильно установлен признак отладки")
}
})
}
func TestAlbums(t *testing.T) {
t.Run("проверка получения списка альбомов", func(t *testing.T) {
// создание с признаком отладки
sea, err := Connect(true)
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
albums, err := sea.Albums()
if err != nil {
t.Errorf("Ошибка albums: %v", err)
}
if len(albums) == 0 {
t.Errorf("Получен пустой список альбомов")
}
})
}

Loading…
Cancel
Save