Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions test/fixtures/sources/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Source fixtures

This file is intentionally not a review target.
3 changes: 3 additions & 0 deletions test/fixtures/sources/example.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package main

func main() {}
2 changes: 2 additions & 0 deletions test/fixtures/sources/example.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
def greet(name: str) -> str:
return f"Hello, {name}"
35 changes: 35 additions & 0 deletions test/sources.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,41 @@ import assert from 'node:assert/strict'
import test from 'node:test'
import { loadTargets } from '../dist/agents/code-review/sources.js'

test('local source directories normalize supported files and ignore Markdown', async () => {
const targets = await loadTargets({ kind: 'paths', paths: ['test/fixtures/sources'] })
const byFile = new Map(targets.map((target) => [target.file, target]))

assert.deepEqual([...byFile.keys()].sort(), [
'test/fixtures/sources/example.go',
'test/fixtures/sources/example.py',
])
assert.equal(byFile.get('test/fixtures/sources/example.go')?.language, 'go')
assert.equal(byFile.get('test/fixtures/sources/example.py')?.language, 'py')
assert.equal(byFile.get('test/fixtures/sources/example.go')?.isChanged, false)
assert.equal(byFile.get('test/fixtures/sources/example.py')?.isChanged, false)
assert.equal(
byFile.get('test/fixtures/sources/example.go')?.fullContent,
'package main\n\nfunc main() {}\n',
)
assert.equal(
byFile.get('test/fixtures/sources/example.py')?.fullContent,
'def greet(name: str) -> str:\n return f"Hello, {name}"\n',
)
})

test('stdin source normalization derives Python language and marks the target changed', async () => {
const [target] = await loadTargets({
kind: 'stdin',
filename: 'example.py',
content: 'print("hello")\n',
})

assert.equal(target?.language, 'py')
assert.equal(target?.isChanged, true)
assert.equal(target?.file, 'example.py')
assert.equal(target?.fullContent, 'print("hello")\n')
})

test('GitHub PR ingestion fails when a reviewable file cannot be loaded', async () => {
const originalFetch = globalThis.fetch
globalThis.fetch = async (url) => {
Expand Down