package logview

import (
	"os"
	"path/filepath"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestTailFileReturnsLastLines(t *testing.T) {
	path := filepath.Join(t.TempDir(), "agentteam.log")
	require.NoError(t, os.WriteFile(path, []byte("one\ntwo\nthree\n"), 0o644))

	result, err := TailFile(path, 2)
	require.NoError(t, err)
	require.Equal(t, []string{"two", "three"}, result.Lines)
	require.Positive(t, result.Size)
	require.False(t, result.UpdatedAt.IsZero())
}

func TestTailFileHandlesCRLFAndMissingTrailingNewline(t *testing.T) {
	path := filepath.Join(t.TempDir(), "agentteam.log")
	require.NoError(t, os.WriteFile(path, []byte("one\r\ntwo\r\nthree"), 0o644))

	result, err := TailFile(path, 500)
	require.NoError(t, err)
	require.Equal(t, []string{"one", "two", "three"}, result.Lines)
}

func TestTailFileZeroLimitReturnsNoLines(t *testing.T) {
	path := filepath.Join(t.TempDir(), "agentteam.log")
	require.NoError(t, os.WriteFile(path, []byte("one\ntwo\n"), 0o644))

	result, err := TailFile(path, 0)
	require.NoError(t, err)
	require.Empty(t, result.Lines)
}
