Skip to content

feat: implement issues #547, #548, #549, #550#563

Open
chizzy192 wants to merge 1 commit into
accesslayerorg:mainfrom
chizzy192:feat/issues-547-548-549-550
Open

feat: implement issues #547, #548, #549, #550#563
chizzy192 wants to merge 1 commit into
accesslayerorg:mainfrom
chizzy192:feat/issues-547-548-549-550

Conversation

@chizzy192

Copy link
Copy Markdown

Summary

Resolves four tracked issues across testing, utilities, and observability.

Changes

#548 – Add parseISOTimestamp helper

  • Added InvalidTimestamp typed error class to iso-timestamp.utils.ts
  • Added parseISOTimestamp(value: string): Date that strictly validates ISO 8601 datetime strings (rejects bare dates, Unix timestamp strings, empty strings) and returns a UTC Date object
  • Extended iso-timestamp.utils.test.ts with 8 new unit tests covering all acceptance criteria

#547 – Integration test: creator list returns empty array when no creators exist

  • Added creator-list-empty-database.integration.test.ts with 8 tests
  • Asserts HTTP 200 (not 404), empty data.items array, meta.total === 0, meta.hasMore === false when the DB has no creator records
  • Uses Jest mocks — no live database required

#549 – Integration test: alert registration returns 400 for zero/negative target_price

  • Added alert-invalid-target-price.integration.test.ts with 8 tests
  • Asserts 400 for target_price: 0 and target_price: -1
  • Asserts error body identifies the target_price field
  • Asserts createAlert is never called (no DB record created)
  • Uses Jest mocks — no live database required

#550 – Structured debug log after every creator list query

  • Updated fetchCreatorList in creators.utils.ts to emit a logger.debug call after every query resolves
  • Log fields: result_count, filters (only active params), sort, query_duration_ms; cursor is intentionally excluded
  • Added creator-list-query-log.test.ts with 14 unit tests verifying log content, active-only filter keys, cursor absence, and timing

Closes #547
Closes #548
Closes #549
Closes #550

Summary

Testing

  • pnpm lint
  • pnpm build
  • pnpm exec prisma generate when schema or generated types changed

Checklist

  • Linked issue or backlog item
  • No secrets or live credentials added
  • Docs updated if setup or env changed
  • Change is scoped to one problem

…layerorg#549, accesslayerorg#550

## Summary

Resolves four tracked issues across testing, utilities, and observability.

## Changes

### accesslayerorg#548 – Add parseISOTimestamp helper
- Added `InvalidTimestamp` typed error class to `iso-timestamp.utils.ts`
- Added `parseISOTimestamp(value: string): Date` that strictly validates
  ISO 8601 datetime strings (rejects bare dates, Unix timestamp strings,
  empty strings) and returns a UTC Date object
- Extended `iso-timestamp.utils.test.ts` with 8 new unit tests covering
  all acceptance criteria

### accesslayerorg#547 – Integration test: creator list returns empty array when no creators exist
- Added `creator-list-empty-database.integration.test.ts` with 8 tests
- Asserts HTTP 200 (not 404), empty `data.items` array, `meta.total === 0`,
  `meta.hasMore === false` when the DB has no creator records
- Uses Jest mocks — no live database required

### accesslayerorg#549 – Integration test: alert registration returns 400 for zero/negative target_price
- Added `alert-invalid-target-price.integration.test.ts` with 8 tests
- Asserts 400 for `target_price: 0` and `target_price: -1`
- Asserts error body identifies the `target_price` field
- Asserts `createAlert` is never called (no DB record created)
- Uses Jest mocks — no live database required

### accesslayerorg#550 – Structured debug log after every creator list query
- Updated `fetchCreatorList` in `creators.utils.ts` to emit a
  `logger.debug` call after every query resolves
- Log fields: `result_count`, `filters` (only active params), `sort`,
  `query_duration_ms`; cursor is intentionally excluded
- Added `creator-list-query-log.test.ts` with 14 unit tests verifying
  log content, active-only filter keys, cursor absence, and timing

Closes accesslayerorg#547
Closes accesslayerorg#548
Closes accesslayerorg#549
Closes accesslayerorg#550
@drips-wave

drips-wave Bot commented Jun 28, 2026

Copy link
Copy Markdown

@chizzy192 Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment