# test.secrets/core/validators/environment.validator.test.ts

> 23 lines of code and 0 definitions.

Tree: Codebase Testing
Language: typescript
Canonical: https://banes-lab.com/anatomy/testing#file-testing-test-secrets-core-validators-environment-validator-test-ts
Source text: https://banes-lab.com/source/testing/test.secrets/core/validators/environment.validator.test.ts.txt

Listed in [test.secrets/core/validators](https://banes-lab.com/api/source/testing/test.secrets/core/validators.md).

## Contained in

- [test.secrets/core/validators](https://banes-lab.com/anatomy/testing/folder-testing-test-secrets-core-validators.md)

## Source

```typescript
import { describe, expect, it } from "vitest";
import { isValueOfKind } from "@ssot/secrets/core/validators/environment.validator.ts";

describe("isValueOfKind", () => {
    it("accepts a whole port number up to the ceiling and refuses anything else", () => {
        expect(isValueOfKind("port", "0")).toBe(true);
        expect(isValueOfKind("port", "65535")).toBe(true);
        expect(isValueOfKind("port", "65536")).toBe(false);
        expect(isValueOfKind("port", "12a")).toBe(false);
        expect(isValueOfKind("port", "")).toBe(false);
    });

    it("accepts a parsable address for a url and refuses text that is not one", () => {
        expect(isValueOfKind("url", "https://example.test/hook")).toBe(true);
        expect(isValueOfKind("url", "not an address")).toBe(false);
    });

    it("refuses a blank inside a host, a user or a path, and allows one inside a secret", () => {
        expect(isValueOfKind("host", "droplet.example.test")).toBe(true);
        expect(isValueOfKind("host", "two words")).toBe(false);
        expect(isValueOfKind("user", "deploy user")).toBe(false);
        expect(isValueOfKind("path", "/srv/site")).toBe(true);
        expect(isValueOfKind("secret", "a passphrase with spaces")).toBe(true);
        expect(isValueOfKind("secret", "")).toBe(false);
    });
});
```
