package host import ( "testing" ) func TestLiveReload_ClientCount(t *testing.T) { lr := NewLiveReload() if count := lr.ClientCount(); count != 0 { t.Errorf("Expected 0 clients, got %d", count) } } func TestMakeFrame_SmallPayload(t *testing.T) { data := []byte("reload") frame := makeFrame(1, data) // First byte: FIN + opcode if frame[0] != 0x81 { t.Errorf("Expected first byte 0x81, got 0x%02x", frame[0]) } // Second byte: length (no mask, small payload) if frame[1] != byte(len(data)) { t.Errorf("Expected length %d, got %d", len(data), frame[1]) } // Payload payload := frame[2:] if string(payload) != string(data) { t.Errorf("Expected payload %q, got %q", data, payload) } } func TestMakeFrame_MediumPayload(t *testing.T) { // Create payload between 126 and 65535 bytes data := make([]byte, 200) for i := range data { data[i] = byte(i % 256) } frame := makeFrame(1, data) // First byte: FIN + opcode if frame[0] != 0x81 { t.Errorf("Expected first byte 0x81, got 0x%02x", frame[0]) } // Second byte: 126 indicates extended length if frame[1] != 126 { t.Errorf("Expected length indicator 126, got %d", frame[1]) } // Extended length (2 bytes, big endian) extLen := int(frame[2])<<8 | int(frame[3]) if extLen != len(data) { t.Errorf("Expected extended length %d, got %d", len(data), extLen) } } func TestMakeFrame_CloseFrame(t *testing.T) { frame := makeFrame(8, nil) // First byte: FIN + close opcode if frame[0] != 0x88 { t.Errorf("Expected first byte 0x88, got 0x%02x", frame[0]) } // Second byte: 0 length if frame[1] != 0 { t.Errorf("Expected length 0, got %d", frame[1]) } }