test(plugins): speed up integration tests (~45% improvement) (#5137)

* test(plugins): speed up integration tests with shared wazero cache

Reduce plugin test suite runtime from ~22s to ~12s by:

- Creating a shared wazero compilation cache directory in TestPlugins()
  and setting conf.Server.CacheFolder globally so all test Manager
  instances reuse compiled WASM binaries from disk cache
- Moving 6 createTestManager* calls from inside It blocks to BeforeAll
  blocks in scrobbler_adapter_test.go and manager_call_test.go
- Replacing time.Sleep(2s) in KVStore TTL test with Eventually polling
- Reducing WebSocket callback sleeps from 100ms to 10ms

Signed-off-by: Deluan <deluan@navidrome.org>

* test(plugins): enhance websocket tests by storing server messages for verification

Signed-off-by: Deluan <deluan@navidrome.org>

---------

Signed-off-by: Deluan <deluan@navidrome.org>
This commit is contained in:
Deluan Quintão
2026-03-02 16:18:30 -05:00
committed by GitHub
parent 82f9f88c0f
commit 30df004d4d
13 changed files with 165 additions and 135 deletions
+3 -2
View File
@@ -45,10 +45,11 @@ func (t *testWebSocket) OnTextMessage(input websocket.OnTextMessageRequest) erro
}
// OnBinaryMessage is called when a binary message is received.
// Echoes the data back as a text message prefixed with "binary_echo:" so tests
// can observe the callback fired.
func (t *testWebSocket) OnBinaryMessage(input websocket.OnBinaryMessageRequest) error {
// Store received binary data for test verification
storeReceivedMessage("binary:" + input.Data)
return nil
return host.WebSocketSendText(input.ConnectionID, "binary_echo:"+input.Data)
}
// OnError is called when an error occurs on a WebSocket connection.