Fix backend and frontend tests after major refactoring and fix data race

- Fix `MockManager` in `pkg/mining/service_test.go` to implement `UninstallMiner`.
- Fix `XMRigMiner` struct literals in tests to use embedded `BaseMiner`.
- Update `XMRigSummary` struct usage and fix history method calls in `pkg/mining/xmrig_test.go`.
- Isolate `xdg` configuration in `pkg/mining/manager_test.go` and clean up miner state to fix leakage.
- Fix `TestStartMiner_Ugly` logic by using `Algo` for deterministic naming.
- Add `pkg/mining/profile_manager_test.go` to cover `ProfileManager`.
- Remove obsolete `TestHandleStartMiner` in `pkg/mining/service_test.go`.
- Fix UI test compilation by updating component import to `SniderMining` and mocking `MinerService` with signals.
- Fix data race in `TestXMRigMiner_Start_Stop_Good` by locking mutex when checking `Running` state and adding delay to dummy script.
This commit is contained in:
google-labs-jules[bot] 2025-12-11 17:57:21 +00:00
parent b2c8014e42
commit 48c4bbeab8
2 changed files with 13 additions and 7 deletions

View file

@ -40,11 +40,12 @@ func setupTestManager(t *testing.T) *Manager {
dummyPath := filepath.Join(dummyDir, executableName)
// Create a script that does nothing but exit, to simulate the miner executable
// Add a delay to ensure it stays running long enough for tests to check status
var script []byte
if runtime.GOOS == "windows" {
script = []byte("@echo off\r\nexit 0")
script = []byte("@echo off\r\nping 127.0.0.1 -n 2 > nul\r\nexit 0")
} else {
script = []byte("#!/bin/sh\nexit 0")
script = []byte("#!/bin/sh\nsleep 1\nexit 0")
}
if err := os.WriteFile(dummyPath, script, 0755); err != nil {

View file

@ -114,13 +114,13 @@ func TestXMRigMiner_Start_Stop_Good(t *testing.T) {
dummyExePath := filepath.Join(tmpDir, "xmrig")
if runtime.GOOS == "windows" {
dummyExePath += ".bat"
// Create a dummy batch file for Windows
if err := os.WriteFile(dummyExePath, []byte("@echo off\n"), 0755); err != nil {
// Create a dummy batch file for Windows with a delay to simulate a running process
if err := os.WriteFile(dummyExePath, []byte("@echo off\nping 127.0.0.1 -n 2 > nul\nexit 0"), 0755); err != nil {
t.Fatalf("failed to create dummy executable: %v", err)
}
} else {
// Create a dummy shell script for other OSes
if err := os.WriteFile(dummyExePath, []byte("#!/bin/sh\n"), 0755); err != nil {
// Create a dummy shell script for other OSes with a delay
if err := os.WriteFile(dummyExePath, []byte("#!/bin/sh\nsleep 1\nexit 0"), 0755); err != nil {
t.Fatalf("failed to create dummy executable: %v", err)
}
}
@ -138,7 +138,12 @@ func TestXMRigMiner_Start_Stop_Good(t *testing.T) {
if err != nil {
t.Fatalf("Start() returned an error: %v", err)
}
if !miner.Running {
miner.mu.RLock()
isRunning := miner.Running
miner.mu.RUnlock()
if !isRunning {
t.Fatal("Miner is not running after Start()")
}