mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 17:17:38 +00:00
65 lines
2.2 KiB
TypeScript
65 lines
2.2 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
ghAccountBindingsEqual,
|
|
ghTokenEnvVarForHost,
|
|
normalizeGhAccountBinding
|
|
} from './account-binding'
|
|
|
|
describe('normalizeGhAccountBinding', () => {
|
|
it('trims, lowercases host, and preserves user case', () => {
|
|
expect(normalizeGhAccountBinding({ host: ' GitHub.COM ', user: ' Alice ' })).toEqual({
|
|
host: 'github.com',
|
|
user: 'Alice'
|
|
})
|
|
})
|
|
|
|
it('rejects malformed shapes', () => {
|
|
expect(normalizeGhAccountBinding(null)).toBeNull()
|
|
expect(normalizeGhAccountBinding({ host: '', user: 'a' })).toBeNull()
|
|
expect(normalizeGhAccountBinding({ host: 'github.com', user: '' })).toBeNull()
|
|
expect(normalizeGhAccountBinding({ host: 'bad host', user: 'a' })).toBeNull()
|
|
expect(normalizeGhAccountBinding({ host: 'github.com', user: 'has space' })).toBeNull()
|
|
})
|
|
|
|
it('accepts GHES/LDAP logins with underscores and dots', () => {
|
|
expect(normalizeGhAccountBinding({ host: 'github.acme.com', user: 'svc_build' })).toEqual({
|
|
host: 'github.acme.com',
|
|
user: 'svc_build'
|
|
})
|
|
expect(normalizeGhAccountBinding({ host: 'github.acme.com', user: 'first.last' })).toEqual({
|
|
host: 'github.acme.com',
|
|
user: 'first.last'
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('ghTokenEnvVarForHost', () => {
|
|
it('selects GH_TOKEN for github.com, github.localhost, and *.ghe.com', () => {
|
|
expect(ghTokenEnvVarForHost('github.com')).toBe('GH_TOKEN')
|
|
expect(ghTokenEnvVarForHost('github.localhost')).toBe('GH_TOKEN')
|
|
expect(ghTokenEnvVarForHost('acme.ghe.com')).toBe('GH_TOKEN')
|
|
})
|
|
|
|
it('selects GH_ENTERPRISE_TOKEN for classic GHES hosts', () => {
|
|
expect(ghTokenEnvVarForHost('github.acme-corp.com')).toBe('GH_ENTERPRISE_TOKEN')
|
|
expect(ghTokenEnvVarForHost('ghe.internal')).toBe('GH_ENTERPRISE_TOKEN')
|
|
})
|
|
})
|
|
|
|
describe('ghAccountBindingsEqual', () => {
|
|
it('compares equal pairs and preserves user case sensitivity', () => {
|
|
expect(
|
|
ghAccountBindingsEqual(
|
|
{ host: 'github.com', user: 'Alice' },
|
|
{ host: 'github.com', user: 'Alice' }
|
|
)
|
|
).toBe(true)
|
|
expect(
|
|
ghAccountBindingsEqual(
|
|
{ host: 'github.com', user: 'Alice' },
|
|
{ host: 'github.com', user: 'alice' }
|
|
)
|
|
).toBe(false)
|
|
})
|
|
})
|