Add project type detection (pkg/detect) and complete PHP quality assurance package (pkg/php) with formatter, analyser, audit, security, refactor, mutation testing, test runner, pipeline stages, and QA runner that builds process.RunSpec for orchestrated execution. Co-Authored-By: Virgil <virgil@lethean.io>
46 lines
1 KiB
Go
46 lines
1 KiB
Go
package detect
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIsGoProject_Good(t *testing.T) {
|
|
dir := t.TempDir()
|
|
os.WriteFile(filepath.Join(dir, "go.mod"), []byte("module test"), 0644)
|
|
assert.True(t, IsGoProject(dir))
|
|
}
|
|
|
|
func TestIsGoProject_Bad(t *testing.T) {
|
|
dir := t.TempDir()
|
|
assert.False(t, IsGoProject(dir))
|
|
}
|
|
|
|
func TestIsPHPProject_Good(t *testing.T) {
|
|
dir := t.TempDir()
|
|
os.WriteFile(filepath.Join(dir, "composer.json"), []byte("{}"), 0644)
|
|
assert.True(t, IsPHPProject(dir))
|
|
}
|
|
|
|
func TestIsPHPProject_Bad(t *testing.T) {
|
|
dir := t.TempDir()
|
|
assert.False(t, IsPHPProject(dir))
|
|
}
|
|
|
|
func TestDetectAll_Good(t *testing.T) {
|
|
dir := t.TempDir()
|
|
os.WriteFile(filepath.Join(dir, "go.mod"), []byte("module test"), 0644)
|
|
os.WriteFile(filepath.Join(dir, "composer.json"), []byte("{}"), 0644)
|
|
types := DetectAll(dir)
|
|
assert.Contains(t, types, Go)
|
|
assert.Contains(t, types, PHP)
|
|
}
|
|
|
|
func TestDetectAll_Empty(t *testing.T) {
|
|
dir := t.TempDir()
|
|
types := DetectAll(dir)
|
|
assert.Empty(t, types)
|
|
}
|