client-stack.host.spec.ts 1.1 KB

123456789101112131415161718192021222324252627282930
  1. import { describe, expect, it } from 'vitest'
  2. import { inspectorId } from '../src/shared/bridge/ids.ts'
  3. import { ClientScriptIdentity } from '../src/worker/realms/client/scripts.ts'
  4. import { clientConsoleEvent } from '../src/worker/realms/client/values.ts'
  5. describe('Worker Client stack projection', () => {
  6. it('uses one script key in Client Console and Sources projections', () => {
  7. const localKey = inspectorId<'RuntimeScriptKey'>('client-bundle', 'scriptKey')
  8. const scripts = new ClientScriptIdentity(-7)
  9. const projected = clientConsoleEvent({
  10. type: 'console-api',
  11. event: {
  12. type: 'log',
  13. arguments: [],
  14. timestamp: 1,
  15. stackTrace: {
  16. callFrames: [{
  17. functionName: 'apply',
  18. scriptKey: localKey,
  19. url: 'http://client.test/client.js',
  20. lineNumber: 1,
  21. columnNumber: 2,
  22. }],
  23. },
  24. },
  25. }, scriptKey => scripts.toRuntime(scriptKey))
  26. if (projected.type !== 'console-api') throw new Error('unexpected exception event')
  27. expect(projected.event.stackTrace?.callFrames[0]?.scriptKey).toBe(scripts.toRuntime(localKey))
  28. })
  29. })