package server

import (
	"path/filepath"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestLockInstanceExclusive(t *testing.T) {
	dir := t.TempDir()

	release, err := LockInstance(dir)
	assert.NoError(t, err)

	_, err = LockInstance(dir)
	assert.ErrorIs(t, err, errInstanceLocked)

	release()

	release2, err := LockInstance(dir)
	assert.NoError(t, err)
	release2()
}

func TestLockInstanceCreatesDir(t *testing.T) {
	dir := filepath.Join(t.TempDir(), "migrations")

	release, err := LockInstance(dir)
	assert.NoError(t, err)
	assert.DirExists(t, dir)
	release()
}
