// SPDX-FileCopyrightText: 2022 Free Mobile
// SPDX-License-Identifier: AGPL-3.0-only

//go:build !release

package daemon

import (
	"testing"

	"gopkg.in/tomb.v2"
)

// MockComponent is a daemon component that does nothing. It doesn't
// need to be started to work.
type MockComponent struct {
	lifecycleComponent
}

// NewMock will create a daemon component that does nothing.
func NewMock(t testing.TB) Component {
	t.Helper()
	return &MockComponent{
		lifecycleComponent: lifecycleComponent{
			terminateChannel: make(chan struct{}),
		},
	}
}

// Start does nothing.
func (c *MockComponent) Start() error {
	return nil
}

// Stop does nothing.
func (c *MockComponent) Stop() error {
	c.Terminate()
	return nil
}

// Track does nothing
func (c *MockComponent) Track(_ *tomb.Tomb, _ string) {
}
