mirror of
https://github.com/stablyai/orca.git
synced 2026-11-02 10:08:13 +00:00
* test: remove low-value inventories, passthroughs and redundant cases * style: format test suites after pruning redundant cases * test: remove obsolete workflow and flaky-test references * test: prune deleted builder test from Windows shim allowlist --------- Co-authored-by: OrcaWin <293788423+OrcaWin@users.noreply.github.com>
103 lines
2.6 KiB
TypeScript
103 lines
2.6 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
filterAvailableTaskProviders,
|
|
normalizeTaskProviderSettings,
|
|
restoreAvailableDefaultTaskProvider
|
|
} from './task-providers'
|
|
|
|
describe('task providers', () => {
|
|
it('restores a valid saved default when provider settings drifted', () => {
|
|
expect(
|
|
normalizeTaskProviderSettings({
|
|
visibleTaskProviders: ['linear'],
|
|
defaultTaskSource: 'github'
|
|
})
|
|
).toEqual({
|
|
defaultTaskSource: 'github',
|
|
visibleTaskProviders: ['github', 'linear']
|
|
})
|
|
})
|
|
|
|
it('normalizes invalid saved defaults to the first visible provider', () => {
|
|
expect(
|
|
normalizeTaskProviderSettings({
|
|
visibleTaskProviders: ['gitlab'],
|
|
defaultTaskSource: 'bitbucket'
|
|
})
|
|
).toEqual({
|
|
defaultTaskSource: 'gitlab',
|
|
visibleTaskProviders: ['gitlab']
|
|
})
|
|
})
|
|
|
|
it('filters runtime-unavailable providers without changing preference normalization', () => {
|
|
expect(
|
|
filterAvailableTaskProviders(['github', 'gitlab', 'linear'], {
|
|
gitlabInstalled: false,
|
|
linearConnected: true
|
|
})
|
|
).toEqual(['github', 'linear'])
|
|
})
|
|
|
|
it('keeps an available saved default visible when provider visibility drifted', () => {
|
|
expect(
|
|
restoreAvailableDefaultTaskProvider(
|
|
['linear'],
|
|
{
|
|
gitlabInstalled: false,
|
|
linearConnected: true
|
|
},
|
|
'github'
|
|
)
|
|
).toEqual(['github', 'linear'])
|
|
})
|
|
|
|
it('preserves intentionally narrowed providers when the saved default matches them', () => {
|
|
expect(
|
|
restoreAvailableDefaultTaskProvider(
|
|
['linear'],
|
|
{
|
|
gitlabInstalled: false,
|
|
linearConnected: true
|
|
},
|
|
'linear'
|
|
)
|
|
).toEqual(['linear'])
|
|
})
|
|
|
|
it('does not restore an unavailable saved default', () => {
|
|
expect(
|
|
restoreAvailableDefaultTaskProvider(
|
|
['linear'],
|
|
{
|
|
gitlabInstalled: false,
|
|
linearConnected: true
|
|
},
|
|
'gitlab'
|
|
)
|
|
).toEqual(['linear'])
|
|
})
|
|
|
|
it('ignores invalid saved defaults while restoring visible providers', () => {
|
|
expect(
|
|
restoreAvailableDefaultTaskProvider(
|
|
['gitlab'],
|
|
{
|
|
gitlabInstalled: false,
|
|
linearConnected: true
|
|
},
|
|
'bitbucket'
|
|
)
|
|
).toEqual(['github'])
|
|
})
|
|
|
|
it('falls back to GitHub when every preferred provider is unavailable', () => {
|
|
expect(
|
|
filterAvailableTaskProviders(['gitlab', 'linear'], {
|
|
gitlabInstalled: false,
|
|
linearConnected: false
|
|
})
|
|
).toEqual(['github'])
|
|
})
|
|
})
|