feat(guardian): add guardian package - code quality analyzer

Add @puaros/guardian package v0.1.0 - code quality guardian for vibe coders and enterprise teams.

Features:
- Hardcode detection (magic numbers, magic strings)
- Circular dependency detection
- Naming convention enforcement (Clean Architecture)
- Architecture violation detection
- CLI tool with comprehensive reporting
- 159 tests with 80%+ coverage
- Smart suggestions for fixes
- Built for AI-assisted development

Built with Clean Architecture and DDD principles.
Works with Claude, GPT, Copilot, Cursor, and any AI coding assistant.
This commit is contained in:
imfozilbek
2025-11-24 02:54:39 +05:00
parent 9f97509b06
commit 03705b5264
96 changed files with 9520 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import { describe, it, expect } from "vitest"
import { Guards } from "../../../src/shared/utils/Guards"
describe("Guards", () => {
describe("isNullOrUndefined", () => {
it("should return true for null", () => {
expect(Guards.isNullOrUndefined(null)).toBe(true)
})
it("should return true for undefined", () => {
expect(Guards.isNullOrUndefined(undefined)).toBe(true)
})
it("should return false for other values", () => {
expect(Guards.isNullOrUndefined(0)).toBe(false)
expect(Guards.isNullOrUndefined("")).toBe(false)
expect(Guards.isNullOrUndefined(false)).toBe(false)
})
})
describe("isString", () => {
it("should return true for strings", () => {
expect(Guards.isString("hello")).toBe(true)
expect(Guards.isString("")).toBe(true)
})
it("should return false for non-strings", () => {
expect(Guards.isString(123)).toBe(false)
expect(Guards.isString(null)).toBe(false)
})
})
describe("isEmpty", () => {
it("should return true for empty strings", () => {
expect(Guards.isEmpty("")).toBe(true)
})
it("should return true for empty arrays", () => {
expect(Guards.isEmpty([])).toBe(true)
})
it("should return true for empty objects", () => {
expect(Guards.isEmpty({})).toBe(true)
})
it("should return true for null/undefined", () => {
expect(Guards.isEmpty(null)).toBe(true)
expect(Guards.isEmpty(undefined)).toBe(true)
})
it("should return false for non-empty values", () => {
expect(Guards.isEmpty("text")).toBe(false)
expect(Guards.isEmpty([1])).toBe(false)
expect(Guards.isEmpty({ key: "value" })).toBe(false)
})
})
})