Skip to content

Commit

Permalink
test: add test
Browse files Browse the repository at this point in the history
  • Loading branch information
nick-bisonai committed Aug 28, 2024
1 parent 2f121d9 commit 2b09a1c
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 1 deletion.
126 changes: 126 additions & 0 deletions node/pkg/fetcher/app_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"testing"
"time"

"bisonai.com/miko/node/pkg/bus"
"bisonai.com/miko/node/pkg/db"
"github.com/stretchr/testify/assert"
)
Expand Down Expand Up @@ -113,3 +114,128 @@ func TestAppRun(t *testing.T) {
}
assert.Greater(t, len(localAggregateResult), 0)
}

func TestAppRefresh(t *testing.T) {
ctx := context.Background()
clean, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer func() {
if cleanupErr := clean(); cleanupErr != nil {
t.Logf("Cleanup failed: %v", cleanupErr)
}
}()

app := testItems.app

err = app.initialize(ctx)
if err != nil {
t.Fatalf("error initializing fetcher: %v", err)
}

err = app.Run(ctx)
if err != nil {
t.Fatalf("error running fetcher: %v", err)
}
for _, fetcher := range app.Fetchers {
assert.True(t, fetcher.isRunning)
}
for _, localAggregator := range app.LocalAggregators {
assert.True(t, localAggregator.isRunning)
}
assert.True(t, app.FeedDataBulkWriter.isRunning)

time.Sleep(WAIT_SECONDS)

resp := make(chan bus.MessageResponse)
err = testItems.messageBus.Publish(
bus.Message{
From: bus.AGGREGATOR,
To: bus.FETCHER,
Content: bus.MessageContent{
Command: bus.REFRESH_FETCHER_APP,
Args: nil,
},
Response: resp,
},
)
if err != nil {
t.Fatalf("error publishing message: %v", err)
}

result := <-resp
assert.Equal(t, result.Success, true)
}

func TestAppRefreshCooldown(t *testing.T) {
ctx := context.Background()
clean, testItems, err := setup(ctx)
if err != nil {
t.Fatalf("error setting up test: %v", err)
}
defer func() {
if cleanupErr := clean(); cleanupErr != nil {
t.Logf("Cleanup failed: %v", cleanupErr)
}
}()

app := testItems.app

err = app.initialize(ctx)
if err != nil {
t.Fatalf("error initializing fetcher: %v", err)
}

err = app.Run(ctx)
if err != nil {
t.Fatalf("error running fetcher: %v", err)
}
for _, fetcher := range app.Fetchers {
assert.True(t, fetcher.isRunning)
}
for _, localAggregator := range app.LocalAggregators {
assert.True(t, localAggregator.isRunning)
}
assert.True(t, app.FeedDataBulkWriter.isRunning)

time.Sleep(WAIT_SECONDS)

resp := make(chan bus.MessageResponse)
err = testItems.messageBus.Publish(
bus.Message{
From: bus.AGGREGATOR,
To: bus.FETCHER,
Content: bus.MessageContent{
Command: bus.REFRESH_FETCHER_APP,
Args: nil,
},
Response: resp,
},
)
if err != nil {
t.Fatalf("error publishing message: %v", err)
}

result := <-resp
assert.Equal(t, result.Success, true)

resp2 := make(chan bus.MessageResponse)
err = testItems.messageBus.Publish(
bus.Message{
From: bus.AGGREGATOR,
To: bus.FETCHER,
Content: bus.MessageContent{
Command: bus.REFRESH_FETCHER_APP,
Args: nil,
},
Response: resp2,
},
)
if err != nil {
t.Fatalf("error publishing message: %v", err)
}

result2 := <-resp2
assert.False(t, result2.Success)
}
2 changes: 1 addition & 1 deletion node/pkg/fetcher/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ func cleanup(ctx context.Context, testItems *TestItems) func() error {
return err
}

err = testItems.app.stopAllFetchers(ctx)
err = testItems.app.stopAll(ctx)
if err != nil {
return err
}
Expand Down

0 comments on commit 2b09a1c

Please sign in to comment.