// This file verifies required CLI arguments and command-level error messages.
package main

import (
	"bytes"
	"strings"
	"testing"
)

func TestRunRequiresExperimentAndOutput(t *testing.T) {
	var stdout bytes.Buffer
	var stderr bytes.Buffer

	code := run([]string{"run"}, &stdout, &stderr)
	if code != 2 {
		t.Fatalf("run() code = %d, want 2", code)
	}
	if !strings.Contains(stderr.String(), "run requires --experiment and --output") {
		t.Fatalf("stderr = %q, want required flags", stderr.String())
	}
}

func TestFetchO11YReplayRequiresDatasetAndOutput(t *testing.T) {
	var stdout bytes.Buffer
	var stderr bytes.Buffer

	code := run([]string{"fetch-o11y-replay"}, &stdout, &stderr)
	if code != 2 {
		t.Fatalf("run() code = %d, want 2", code)
	}
	if !strings.Contains(stderr.String(), "fetch-o11y-replay requires --dataset and --output") {
		t.Fatalf("stderr = %q, want required flags", stderr.String())
	}
}
