tests and better diffs (#163)
* refactor get_review_comments to use reviewThreads graphql api with full thread context and proper diff extraction * Improve get_review_comments output * Improve tests and diffs * GH_TOKEN * Added back approved_by * Fix CI
This commit is contained in:
committed by
pullfrog[bot]
parent
9a8db3e07c
commit
7621d6f0e5
@@ -0,0 +1,146 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`fetchAndFormatPrDiff > fetches PR files and generates TOC with formatted diff > content 1`] = `
|
||||
"## Files (3)
|
||||
- .github/workflows/test.yml → lines 7-47
|
||||
- index.test.ts → lines 48-110
|
||||
- index.ts → lines 111-132
|
||||
|
||||
---
|
||||
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
|
||||
--- a/.github/workflows/test.yml
|
||||
+++ b/.github/workflows/test.yml
|
||||
@@ -0,0 +1,36 @@
|
||||
| | 1 | + | name: Test
|
||||
| | 2 | + |
|
||||
| | 3 | + | on:
|
||||
| | 4 | + | push:
|
||||
| | 5 | + | branches: [main]
|
||||
| | 6 | + | pull_request:
|
||||
| | 7 | + | branches: [main]
|
||||
| | 8 | + |
|
||||
| | 9 | + | jobs:
|
||||
| | 10 | + | test:
|
||||
| | 11 | + | runs-on: ubuntu-latest
|
||||
| | 12 | + |
|
||||
| | 13 | + | strategy:
|
||||
| | 14 | + | matrix:
|
||||
| | 15 | + | node-version: [22.x]
|
||||
| | 16 | + |
|
||||
| | 17 | + | steps:
|
||||
| | 18 | + | - name: Checkout code
|
||||
| | 19 | + | uses: actions/checkout@v4
|
||||
| | 20 | + |
|
||||
| | 21 | + | - name: Setup pnpm
|
||||
| | 22 | + | uses: pnpm/action-setup@v2
|
||||
| | 23 | + | with:
|
||||
| | 24 | + | version: 8
|
||||
| | 25 | + |
|
||||
| | 26 | + | - name: Setup Node.js \${{ matrix.node-version }}
|
||||
| | 27 | + | uses: actions/setup-node@v4
|
||||
| | 28 | + | with:
|
||||
| | 29 | + | node-version: \${{ matrix.node-version }}
|
||||
| | 30 | + | cache: 'pnpm'
|
||||
| | 31 | + |
|
||||
| | 32 | + | - name: Install dependencies
|
||||
| | 33 | + | run: pnpm install
|
||||
| | 34 | + |
|
||||
| | 35 | + | - name: Run tests
|
||||
| | 36 | + | run: pnpm test
|
||||
|
||||
diff --git a/index.test.ts b/index.test.ts
|
||||
--- a/index.test.ts
|
||||
+++ b/index.test.ts
|
||||
@@ -1,5 +1,5 @@
|
||||
| 1 | 1 | | import { describe, it, expect } from 'vitest'
|
||||
| 2 | | - | import { add } from './index.js'
|
||||
| | 2 | + | import { add, multiply, subtract, divide } from './index.js'
|
||||
| 3 | 3 | |
|
||||
| 4 | 4 | | describe('add function', () => {
|
||||
| 5 | 5 | | it('should add two positive numbers correctly', () => {
|
||||
@@ -25,3 +25,51 @@ describe('add function', () => {
|
||||
| 25 | 25 | | expect(add(0.1, 0.2)).toBeCloseTo(0.3)
|
||||
| 26 | 26 | | })
|
||||
| 27 | 27 | | })
|
||||
| | 28 | + |
|
||||
| | 29 | + | describe('multiply function', () => {
|
||||
| | 30 | + | it('should multiply two positive numbers correctly', () => {
|
||||
| | 31 | + | expect(multiply(3, 4)).toBe(12)
|
||||
| | 32 | + | })
|
||||
| | 33 | + |
|
||||
| | 34 | + | it('should multiply negative numbers correctly', () => {
|
||||
| | 35 | + | expect(multiply(-2, 3)).toBe(-6)
|
||||
| | 36 | + | expect(multiply(-2, -3)).toBe(6)
|
||||
| | 37 | + | })
|
||||
| | 38 | + |
|
||||
| | 39 | + | it('should handle zero correctly', () => {
|
||||
| | 40 | + | expect(multiply(5, 0)).toBe(0)
|
||||
| | 41 | + | expect(multiply(0, 5)).toBe(0)
|
||||
| | 42 | + | })
|
||||
| | 43 | + | })
|
||||
| | 44 | + |
|
||||
| | 45 | + | describe('subtract function', () => {
|
||||
| | 46 | + | it('should subtract two positive numbers correctly', () => {
|
||||
| | 47 | + | expect(subtract(10, 3)).toBe(7)
|
||||
| | 48 | + | })
|
||||
| | 49 | + |
|
||||
| | 50 | + | it('should handle negative numbers correctly', () => {
|
||||
| | 51 | + | expect(subtract(5, -3)).toBe(8)
|
||||
| | 52 | + | expect(subtract(-5, 3)).toBe(-8)
|
||||
| | 53 | + | })
|
||||
| | 54 | + |
|
||||
| | 55 | + | it('should handle zero correctly', () => {
|
||||
| | 56 | + | expect(subtract(5, 0)).toBe(5)
|
||||
| | 57 | + | expect(subtract(0, 5)).toBe(-5)
|
||||
| | 58 | + | })
|
||||
| | 59 | + | })
|
||||
| | 60 | + |
|
||||
| | 61 | + | describe('divide function', () => {
|
||||
| | 62 | + | it('should divide two positive numbers correctly', () => {
|
||||
| | 63 | + | expect(divide(10, 2)).toBe(5)
|
||||
| | 64 | + | })
|
||||
| | 65 | + |
|
||||
| | 66 | + | it('should handle negative numbers correctly', () => {
|
||||
| | 67 | + | expect(divide(-10, 2)).toBe(-5)
|
||||
| | 68 | + | expect(divide(10, -2)).toBe(-5)
|
||||
| | 69 | + | })
|
||||
| | 70 | + |
|
||||
| | 71 | + | it('should handle decimal results correctly', () => {
|
||||
| | 72 | + | expect(divide(10, 3)).toBeCloseTo(3.333, 2)
|
||||
| | 73 | + | expect(divide(7, 2)).toBe(3.5)
|
||||
| | 74 | + | })
|
||||
| | 75 | + | })
|
||||
|
||||
diff --git a/index.ts b/index.ts
|
||||
--- a/index.ts
|
||||
+++ b/index.ts
|
||||
@@ -3,11 +3,13 @@ export function add(a: number, b: number) {
|
||||
| 3 | 3 | | }
|
||||
| 4 | 4 | |
|
||||
| 5 | 5 | | export function multiply(a: number, b: number) {
|
||||
| 6 | | - | // Bug: accidentally adding 1 to the result
|
||||
| 7 | | - | return a * b + 1;
|
||||
| | 6 | + | return a * b;
|
||||
| 8 | 7 | | }
|
||||
| 9 | 8 | |
|
||||
| 10 | 9 | | export function subtract(a: number, b: number) {
|
||||
| 11 | | - | // Bug: accidentally adding instead of subtracting
|
||||
| 12 | | - | return a + b;
|
||||
| | 10 | + | return a - b;
|
||||
| | 11 | + | }
|
||||
| | 12 | + |
|
||||
| | 13 | + | export function divide(a: number, b: number) {
|
||||
| | 14 | + | return a / b;
|
||||
| 13 | 15 | | }
|
||||
"
|
||||
`;
|
||||
|
||||
exports[`fetchAndFormatPrDiff > fetches PR files and generates TOC with formatted diff > toc 1`] = `
|
||||
"## Files (3)
|
||||
- .github/workflows/test.yml → lines 7-47
|
||||
- index.test.ts → lines 48-110
|
||||
- index.ts → lines 111-132
|
||||
|
||||
---
|
||||
"
|
||||
`;
|
||||
@@ -0,0 +1,42 @@
|
||||
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
||||
|
||||
exports[`formatReviewThreads > formats thread blocks with TOC and correct line numbers > content 1`] = `
|
||||
"# Review Threads (1) for PR #49 - Review 3485940013 by cursor
|
||||
|
||||
## TOC
|
||||
|
||||
- .github/workflows/test.yml:7 → lines 9-36
|
||||
|
||||
---
|
||||
|
||||
## .github/workflows/test.yml:7 [RESOLVED]
|
||||
|
||||
\`\`\`\`comment author=cursor id=2544544046 review=3485940013 *
|
||||
### Bug: GitHub Actions workflow triggered for wrong branch
|
||||
|
||||
<!-- **High Severity** -->
|
||||
|
||||
<!-- DESCRIPTION START -->
|
||||
The \`pull_request\` trigger specifies \`branches: [mainc]\`, but the \`push\` trigger specifies \`branches: [main]\`. This mismatch means pull requests will only trigger tests if targeting a non-existent \`mainc\` branch rather than the actual \`main\` development branch, preventing CI from running on most pull requests.
|
||||
<!-- DESCRIPTION END -->
|
||||
|
||||
<!-- LOCATIONS START
|
||||
.github/workflows/test.yml#L6-L7
|
||||
LOCATIONS END -->
|
||||
<a href="https://cursor.com/open?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9DVVJTT1IiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjllMTgyY2U2LWY0YWMtNDAwNS1hMzQ4LWIyYzJkZTk4OGM1ZSIsImVuY3J5cHRpb25LZXkiOiJmSW93NEdsUGUwYlYtd3M2UC1UNHdHT1JmMGZjakxfWVZEdC00SWNveXo0IiwiYnJhbmNoIjoiZGl2aWRlIn0sImlhdCI6MTc2MzYyMDgxOSwiZXhwIjoxNzY0MjI1NjE5fQ.BjkWsTqiNriojI5v10JcveUY2M50f9eflTNDgWAdjdW9w7E0EEY4GJfyzBrA72neco3qAlc34WipASNuEQbTD1fZvwtJY-TeNTDzoKmwA6gtwICB8t7qT87GPvcbDrdGGWdC8kW1jf-LntTmD0k7gt0AeENRAdRSiD3dbqYFN0huXHaB8f2Y48mpmLcnnUpoaaZe7By-Y0DnILyHppwx3AH75nKE_ZeAee3rQNGX4cwcHgB5emTSM93pMDQhT1vbIRYHMaFkOaW2-kDOA8H2QqxD4mT8VzY3skvxIo5HNZCvqE84NtEygHqkBv88g2EEijOPAAeskfsdp087yIzV9g"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/fix-in-cursor-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/fix-in-cursor-light.svg"><img alt="Fix in Cursor" src="https://cursor.com/fix-in-cursor.svg"></picture></a> <a href="https://cursor.com/agents?data=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImJ1Z2JvdC12MSJ9.eyJ2ZXJzaW9uIjoxLCJ0eXBlIjoiQlVHQk9UX0ZJWF9JTl9XRUIiLCJkYXRhIjp7InJlZGlzS2V5IjoiYnVnYm90OjllMTgyY2U2LWY0YWMtNDAwNS1hMzQ4LWIyYzJkZTk4OGM1ZSIsImVuY3J5cHRpb25LZXkiOiJmSW93NEdsUGUwYlYtd3M2UC1UNHdHT1JmMGZjakxfWVZEdC00SWNveXo0IiwiYnJhbmNoIjoiZGl2aWRlIiwicmVwb093bmVyIjoicHVsbGZyb2dhaSIsInJlcG9OYW1lIjoic2NyYXRjaCIsInByTnVtYmVyIjo0OSwiY29tbWl0U2hhIjoiNThiOGJmNmQ1MWE1Mjg4OGFjNGFkNzA5YWVmYTk2MWFkZDMyNDBiMSJ9LCJpYXQiOjE3NjM2MjA4MTksImV4cCI6MTc2NDIyNTYxOX0.SFDZe8R9uwhPjS55J4i_mV2ybsSZoQYM6YzdUOava4IKy1IK2OrVkVsG3-8p4rRaMBXdDZZ4ObPbtk70KqdAiLEDKBqaFcWqELc49lr0XRKUmu4F6EhESFQOvt7MLSVDIOgee8YRlhS6xtoPDqsRiV2KGOwyLEdCeYdrYz9i1DanIswWSoMRVvkjxZ6GUBYVAUg_JsgAXoKVJ-L9Q5Ygho6acVAr5NlGeBp2f6g49GX4GfDOPeV3SORQS1CjxQVRbjI-g0rW55NIisBEl8279VwG6-dTISNbyasZOB6R3eEmC4vmyAAGJjUsMwqhMPw1oaMMmYNSbtZLDESxME9IUg"><picture><source media="(prefers-color-scheme: dark)" srcset="https://cursor.com/fix-in-web-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://cursor.com/fix-in-web-light.svg"><img alt="Fix in Web" src="https://cursor.com/fix-in-web.svg"></picture></a>
|
||||
|
||||
|
||||
\`\`\`\`
|
||||
|
||||
\`\`\`diff file=.github/workflows/test.yml lines=7 side=RIGHT
|
||||
@@ -0,0 +1,36 @@
|
||||
... (3 lines above) ...
|
||||
+ push:
|
||||
+ branches: [main]
|
||||
+ pull_request:
|
||||
+ branches: [main]
|
||||
\`\`\`
|
||||
"
|
||||
`;
|
||||
|
||||
exports[`formatReviewThreads > formats thread blocks with TOC and correct line numbers > toc 1`] = `"- .github/workflows/test.yml:7 → lines 9-36"`;
|
||||
Reference in New Issue
Block a user