package config

import (
	"strings"
	"testing"
)

func TestNewFS(t *testing.T) {
	f := func(path, expStr string) {
		t.Helper()
		fs, err := newFS(path)
		if err != nil {
			t.Fatalf("unexpected err: %s", err)
		}
		if fs.String() != expStr {
			t.Fatalf("expected FS %q; got %q", expStr, fs.String())
		}
	}

	f("/foo/bar", "Local FS{MatchPattern: \"/foo/bar\"}")
	f("fs:///foo/bar", "Local FS{MatchPattern: \"/foo/bar\"}")
}

func TestNewFSNegative(t *testing.T) {
	f := func(path, expErr string) {
		t.Helper()
		_, err := newFS(path)
		if err == nil {
			t.Fatalf("expected to have err: %s", expErr)
		}
		if !strings.Contains(err.Error(), expErr) {
			t.Fatalf("expected to have err %q; got %q instead", expErr, err)
		}
	}

	f("", "path cannot be empty")
	f("fs://", "path cannot be empty")
	f("foobar://baz", `unsupported scheme "foobar"`)
}