package collector

import "testing"

func TestMergeStorageDevicePrefersNonEmptyFields(t *testing.T) {
	t.Parallel()

	got := mergeStorageDevice(
		lsblkDevice{Name: "nvme0n1", Type: "disk", Tran: "nvme"},
		lsblkDevice{Name: "nvme0n1", Type: "disk", Size: "1024", Serial: "SN123", Model: "Kioxia"},
	)

	if got.Serial != "SN123" {
		t.Fatalf("serial=%q want SN123", got.Serial)
	}
	if got.Model != "Kioxia" {
		t.Fatalf("model=%q want Kioxia", got.Model)
	}
	if got.Size != "1024" {
		t.Fatalf("size=%q want 1024", got.Size)
	}
}

func TestParseStorageBytes(t *testing.T) {
	t.Parallel()

	if got := parseStorageBytes(" 2048 "); got != 2048 {
		t.Fatalf("parseStorageBytes=%d want 2048", got)
	}
	if got := parseStorageBytes("1.92 TB"); got != 0 {
		t.Fatalf("parseStorageBytes invalid=%d want 0", got)
	}
}
