Skip to content

Commit

Permalink
(OraklNode) Update admin test code (#1161)
Browse files Browse the repository at this point in the history
* test: update admin test code

* fix: add github action condition

* fix: remove comments to trigger github action

* typo: remove comments
  • Loading branch information
nick-bisonai authored Feb 23, 2024
1 parent eec1c2d commit 33a1778
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 61 deletions.
2 changes: 2 additions & 0 deletions .github/workflows/node.test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ on:
- "node/**"
jobs:
core-build:
strategy:
fail-fast: false
runs-on: ubuntu-latest
timeout-minutes: 3

Expand Down
54 changes: 27 additions & 27 deletions node/pkg/admin/tests/adapter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,29 +12,29 @@ import (
)

func TestAdapterInsert(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

mockAdapter1 := adapter.AdapterInsertModel{
Name: "test_adapter_2",
}

readResultBefore, err := GetRequest[[]adapter.AdapterModel](app, "/api/v1/adapter", nil)
readResultBefore, err := GetRequest[[]adapter.AdapterModel](testItems.app, "/api/v1/adapter", nil)
if err != nil {
t.Fatalf("error getting adapters before: %v", err)
}

insertResult, err := PostRequest[adapter.AdapterModel](app, "/api/v1/adapter", mockAdapter1)
insertResult, err := PostRequest[adapter.AdapterModel](testItems.app, "/api/v1/adapter", mockAdapter1)
if err != nil {
t.Fatalf("error inserting adapter: %v", err)
}
assert.Equal(t, insertResult.Name, mockAdapter1.Name)

readResultAfter, err := GetRequest[[]adapter.AdapterModel](app, "/api/v1/adapter", nil)
readResultAfter, err := GetRequest[[]adapter.AdapterModel](testItems.app, "/api/v1/adapter", nil)
if err != nil {
t.Fatalf("error getting adapters after: %v", err)
}
Expand All @@ -49,79 +49,79 @@ func TestAdapterInsert(t *testing.T) {
}

func TestAdapterGet(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[[]adapter.AdapterModel](app, "/api/v1/adapter", nil)
readResult, err := GetRequest[[]adapter.AdapterModel](testItems.app, "/api/v1/adapter", nil)
if err != nil {
t.Fatalf("error getting adapters: %v", err)
}
assert.Greater(t, len(readResult), 0)
}

func TestAdapterReadDetailById(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[adapter.AdapterDetailModel](app, "/api/v1/adapter/detail/"+strconv.FormatInt(*insertedAdapter.Id, 10), nil)
readResult, err := GetRequest[adapter.AdapterDetailModel](testItems.app, "/api/v1/adapter/detail/"+strconv.FormatInt(*testItems.tempData.adapter.Id, 10), nil)
if err != nil {
t.Fatalf("error getting adapter detail: %v", err)
}
assert.Equal(t, readResult.Id, insertedAdapter.Id)
assert.Equal(t, readResult.Id, testItems.tempData.adapter.Id)
assert.NotEmpty(t, readResult.Feeds)
}

func TestAdapterGetById(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[adapter.AdapterModel](app, "/api/v1/adapter/"+strconv.FormatInt(*insertedAdapter.Id, 10), nil)
readResult, err := GetRequest[adapter.AdapterModel](testItems.app, "/api/v1/adapter/"+strconv.FormatInt(*testItems.tempData.adapter.Id, 10), nil)
if err != nil {
t.Fatalf("error getting adapter by id: %v", err)
}
assert.Equal(t, readResult.Id, insertedAdapter.Id)
assert.Equal(t, readResult.Id, testItems.tempData.adapter.Id)
}

func TestAdapterDeleteById(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

mockAdapter1 := adapter.AdapterInsertModel{
Name: "test_adapter_2",
}
insertResult, err := PostRequest[adapter.AdapterModel](app, "/api/v1/adapter", mockAdapter1)
insertResult, err := PostRequest[adapter.AdapterModel](testItems.app, "/api/v1/adapter", mockAdapter1)
if err != nil {
t.Fatalf("error inserting adapter: %v", err)
}

readResultBefore, err := GetRequest[[]adapter.AdapterModel](app, "/api/v1/adapter", nil)
readResultBefore, err := GetRequest[[]adapter.AdapterModel](testItems.app, "/api/v1/adapter", nil)
if err != nil {
t.Fatalf("error getting adapters before: %v", err)
}

deleteResult, err := DeleteRequest[adapter.AdapterModel](app, "/api/v1/adapter/"+strconv.FormatInt(*insertResult.Id, 10), nil)
deleteResult, err := DeleteRequest[adapter.AdapterModel](testItems.app, "/api/v1/adapter/"+strconv.FormatInt(*insertResult.Id, 10), nil)
if err != nil {
t.Fatalf("error deleting adapter: %v", err)
}
assert.Equal(t, deleteResult.Id, insertResult.Id)

readResultAfter, err := GetRequest[[]adapter.AdapterModel](app, "/api/v1/adapter", nil)
readResultAfter, err := GetRequest[[]adapter.AdapterModel](testItems.app, "/api/v1/adapter", nil)
if err != nil {
t.Fatalf("error getting adapters after: %v", err)
}
Expand Down
29 changes: 15 additions & 14 deletions node/pkg/admin/tests/feed_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
package tests

import (
"context"
"strconv"
"testing"

Expand All @@ -10,47 +11,47 @@ import (
)

func TestFeedGet(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[[]feed.FeedModel](app, "/api/v1/feed", nil)
readResult, err := GetRequest[[]feed.FeedModel](testItems.app, "/api/v1/feed", nil)
if err != nil {
t.Fatalf("error getting feeds: %v", err)
}
assert.Greater(t, len(readResult), 0)
}

func TestFeedGetByAdapterId(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[[]feed.FeedModel](app, "/api/v1/feed/adapter/"+strconv.FormatInt(*insertedAdapter.Id, 10), nil)
readResult, err := GetRequest[[]feed.FeedModel](testItems.app, "/api/v1/feed/adapter/"+strconv.FormatInt(*testItems.tempData.adapter.Id, 10), nil)
if err != nil {
t.Fatalf("error getting feeds: %v", err)
}
assert.Greater(t, len(readResult), 0)
assert.Equal(t, insertedFeed.Id, readResult[0].Id)
assert.Equal(t, testItems.tempData.feed.Id, readResult[0].Id)
}

func TestFeedGetById(t *testing.T) {
app, err := setup()
ctx := context.Background()
_cleanup, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer cleanup()
defer app.Shutdown()
defer _cleanup()

readResult, err := GetRequest[feed.FeedModel](app, "/api/v1/feed/"+strconv.FormatInt(*insertedFeed.Id, 10), nil)
readResult, err := GetRequest[feed.FeedModel](testItems.app, "/api/v1/feed/"+strconv.FormatInt(*testItems.tempData.feed.Id, 10), nil)
if err != nil {
t.Fatalf("error getting feeds: %v", err)
}
assert.Equal(t, insertedFeed.Id, readResult.Id)
assert.Equal(t, testItems.tempData.feed.Id, readResult.Id)
}
61 changes: 41 additions & 20 deletions node/pkg/admin/tests/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,51 +12,72 @@ import (
"github.com/gofiber/fiber/v2"
)

var insertedAdapter adapter.AdapterModel
var insertedFeed feed.FeedModel
type TestItems struct {
app *fiber.App
tempData *TempData
}

type TempData struct {
adapter adapter.AdapterModel
feed feed.FeedModel
}

func setup(ctx context.Context) (func() error, *TestItems, error) {
var testItems = new(TestItems)

func setup() (*fiber.App, error) {
app, err := utils.Setup("")
if err != nil {
return nil, err
return nil, nil, err
}
err = insertSampleData(context.Background())

testItems.app = app

tempData, err := insertSampleData(ctx)
if err != nil {
return nil, err
return nil, nil, err
}

testItems.tempData = tempData

v1 := app.Group("/api/v1")
adapter.Routes(v1)
feed.Routes(v1)
return app, nil
return cleanup(testItems), testItems, nil
}

func insertSampleData(ctx context.Context) error {
func insertSampleData(ctx context.Context) (*TempData, error) {
var tempData = new(TempData)

tmpAdapter, err := db.QueryRow[adapter.AdapterModel](ctx, adapter.InsertAdapter, map[string]any{"name": "test_adapter"})
if err != nil {
return err
return nil, err
}
insertedAdapter = tmpAdapter
tempData.adapter = tmpAdapter

tmpFeed, err := db.QueryRow[feed.FeedModel](ctx, adapter.InsertFeed, map[string]any{"name": "test_feed", "adapter_id": insertedAdapter.Id, "definition": `{"test": "test"}`})
tmpFeed, err := db.QueryRow[feed.FeedModel](ctx, adapter.InsertFeed, map[string]any{"name": "test_feed", "adapter_id": tmpAdapter.Id, "definition": `{"test": "test"}`})
if err != nil {
return err
return nil, err
}
insertedFeed = tmpFeed
return nil
tempData.feed = tmpFeed

return tempData, nil
}

func cleanup() {
_, err := db.QueryRow[adapter.AdapterModel](context.Background(), adapter.DeleteAdapterById, map[string]any{"id": insertedAdapter.Id})
if err != nil {
panic(err)
func cleanup(testItems *TestItems) func() error {
return func() error {
err := testItems.app.Shutdown()
if err != nil {
return err
}
_, err = db.QueryRow[adapter.AdapterModel](context.Background(), adapter.DeleteAdapterById, map[string]any{"id": testItems.tempData.adapter.Id})
return err
}
}

func TestMain(m *testing.M) {
// setup
code := m.Run()
db.ClosePool()
db.CloseRedis()
// teardown

os.Exit(code)
}

0 comments on commit 33a1778

Please sign in to comment.