Skip to content

fix CI tests and switch to Blacksmith runners - #3

Merged
aspiers merged 22 commits into
devfrom
fix-tests
Jan 10, 2026
Merged

aspiers merged 22 commits into
devfrom
fix-tests

Conversation

@aspiers

@aspiers aspiers commented Nov 7, 2025 •

Copy link
Copy Markdown
Collaborator

Try to fix tests

@vercel

vercel Bot commented Nov 7, 2025 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
sds-demo Ready Ready Preview, Comment Jan 10, 2026 6:01pm

@aspiers aspiers changed the title fix(ci): add C++20 compiler flag for better-sqlite3 builds try to fix CI tests Nov 7, 2025
@aspiers aspiers mentioned this pull request Nov 10, 2025
blacksmith-sh Bot and others added 2 commits January 10, 2026 15:11
Aim to prevent duplicate objects in the same DB which breaks
tests based on snapshots.
Copilot AI review requested due to automatic review settings January 10, 2026 15:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request attempts to fix CI test failures by skipping failing tests, updating the permission model from a two-level (read/write) to a four-level (read/create/update/delete) system, and making various infrastructure and configuration changes.

Changes:

  • Updated permission model across all tests and source code from {read, write} to {read, create, update, delete}
  • Skipped multiple failing test suites with describe.skip() and it.skip()
  • Added majestic package for Jest UI, updated GitHub Actions runners, and modified workflow configurations

Reviewed changes

Copilot reviewed 44 out of 46 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
pnpm-lock.yaml Added majestic Jest UI tool and supporting dependencies
packages/sds/tests/*.test.ts Updated permission model from read/write to read/create/update/delete across all tests
packages/sds/tests/*.test.ts Skipped failing test suites with describe.skip/it.skip
packages/sds/src/permission-manager/index.ts Added owner access checks and changed audit log ordering from timestamp to ID
packages/sds/src/oauth/federated-token-validator.ts Removed tokenType parameter from validateToken method
packages/sds/src/index.ts Added schemas export
packages/dev-env/src/*.ts Moved mockNetworkUtilities call timing and added SDS lexicon registration
.github/workflows/*.yaml Changed runners from ubuntu-latest/ubuntu-22.04 to blacksmith runners and .nvmrc for Node version
packages/sds-demo/src/*.tsx Updated React Query API usage and removed unused imports
packages/dev-infra/docker-compose.yaml Removed deprecated version field
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/sds/tests/sds-network-integration.test.ts
Comment thread packages/sds/tests/sds-api-endpoints.test.ts
Comment thread packages/sds/src/permission-manager/index.ts
Comment thread .github/workflows/repo.yaml
Comment thread packages/sds/tests/organization-creation.test.ts
Comment thread packages/sds/tests/oauth.test.ts Outdated
})

it('Allows to sign-in trough OAuth', async () => {
it.skip('Allows to sign-in trough OAuth', async () => {

Copilot AI Jan 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The spelling of "trough" should be "through". This appears in the test description.

Copilot uses AI. Check for mistakes.
import { SeedClient, TestNetworkNoAppView, basicSeed } from '@atproto/dev-env'
import { verifyRepoCar } from '@atproto/repo'
import { AppContext, scripts } from '../dist'
import type { AppContext } from '../../pds/dist/context'

Copilot AI Jan 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Importing from ../../pds/dist/context creates a tight coupling between the SDS package and the PDS package's compiled output. This is fragile and could break if the PDS package structure changes. Consider creating a shared types package or exporting these types from the PDS package's main entry point instead of reaching into its dist folder.

Copilot uses AI. Check for mistakes.
Comment thread packages/sds/tests/oauth.test.ts Outdated
import { TestNetworkNoAppView } from '@atproto/dev-env'
// Importing from `dist` to circumvent circular dependency typing issues
import { AccountDb } from '../dist/account-manager/db'
import type { AccountDb } from '../../pds/dist/account-manager/db'

Copilot AI Jan 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Importing from ../../pds/dist/account-manager/db creates a tight coupling between the SDS package and the PDS package's compiled output. This is fragile and could break if the PDS package structure changes. Consider creating a shared types package or exporting these types from the PDS package's main entry point instead of reaching into its dist folder.

Copilot uses AI. Check for mistakes.
})
permissionManager = new SdsPermissionManager(
network.sds.ctx.accountManager.db,
network.sds.ctx.accountManager.db as unknown as Database<DatabaseSchema>,

Copilot AI Jan 10, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using as unknown as type assertions to bypass type checking is a code smell that indicates the types are not properly aligned. The use of double type assertions suggests the actual type and expected type are incompatible. This should be fixed by properly typing the database or adjusting the permission manager constructor to accept the correct type.

Copilot uses AI. Check for mistakes.
@blacksmith-sh

This comment has been minimized.

As a result of seeing failures like this in different packages:

packages/sds test:   ● Test suite failed to run
packages/sds test:     thrown: "Exceeded timeout of 60000 ms for a hook.
packages/sds test:     Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test."
packages/sds test:       24 |   })
packages/sds test:       25 |
packages/sds test:     > 26 |   afterAll(async () => {
packages/sds test:          |   ^
packages/sds test:       27 |     await network.close()
packages/sds test:       28 |   })
packages/sds test:       29 |
packages/sds test:       at afterAll (tests/sds-endpoint-logic.test.ts:26:3)
packages/sds test:       at Object.describe (tests/sds-endpoint-logic.test.ts:8:1)
packages/sds test: PASS SDS tests/sync/sync.test.ts
packages/sds test: PASS SDS tests/handles.test.ts
packages/sds test: PASS SDS tests/proxied/procedures.test.ts
packages/sds test: Test Suites: 1 failed, 1 skipped, 4 passed, 5 of 6 total
packages/sds test: Tests:       4 skipped, 63 passed, 67 total
packages/sds test: Snapshots:   0 total
packages/sds test: Time:        77.922 s
packages/sds test: Ran all test suites.
packages/sds test: Jest did not exit one second after the test run has completed.
packages/sds test: This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.
@aspiers
aspiers merged commit 11a799c into dev Jan 10, 2026
12 checks passed
@aspiers
aspiers deleted the fix-tests branch January 10, 2026 18:21
@aspiers aspiers changed the title try to fix CI tests fix CI tests and switch to Blacksmith runners Jan 10, 2026

This branch was successfully deployed

1 active deployment
Preview — b6346362 Deployed Jan 10, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants