package main

import (
	"encoding/json"
	"strings"
	"testing"
)

// Parola web'e/sunucuya giden ayarda asla yer almamali; yalnizca parolaVar bilgisi olmali.
func TestAyarGosterParolaSizarmaz(t *testing.T) {
	ham := json.RawMessage(`{"port":80,"host":"10.0.0.5","kullanici":"ali","parola":"gizli123"}`)
	out := ayarGoster(ham)
	if strings.Contains(string(out), "gizli123") || strings.Contains(string(out), "parola\"") {
		t.Fatalf("parola sizdi: %s", out)
	}
	var m map[string]any
	if err := json.Unmarshal(out, &m); err != nil {
		t.Fatal(err)
	}
	if m["parolaVar"] != true {
		t.Fatalf("parolaVar beklenen true: %v", m["parolaVar"])
	}
	if m["host"] != "10.0.0.5" || m["kullanici"] != "ali" {
		t.Fatalf("host/kullanici korunmadi: %v", m)
	}
}

func TestAyarGosterParolaYoksa(t *testing.T) {
	out := ayarGoster(json.RawMessage(`{"port":8888}`))
	var m map[string]any
	_ = json.Unmarshal(out, &m)
	if m["parolaVar"] != false {
		t.Fatalf("parola yokken parolaVar false olmali: %v", m)
	}
}

func TestAyarGosterBos(t *testing.T) {
	if out := ayarGoster(nil); out != nil {
		t.Fatalf("bos ayar nil olmali: %s", out)
	}
}
