snapshot-agent.d.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. import MockAgent from './mock-agent'
  2. declare class SnapshotRecorder {
  3. constructor (options?: SnapshotRecorder.Options)
  4. record (requestOpts: any, response: any): Promise<void>
  5. findSnapshot (requestOpts: any): SnapshotRecorder.Snapshot | undefined
  6. loadSnapshots (filePath?: string): Promise<void>
  7. saveSnapshots (filePath?: string): Promise<void>
  8. clear (): void
  9. getSnapshots (): SnapshotRecorder.Snapshot[]
  10. size (): number
  11. resetCallCounts (): void
  12. deleteSnapshot (requestOpts: any): boolean
  13. getSnapshotInfo (requestOpts: any): SnapshotRecorder.SnapshotInfo | null
  14. replaceSnapshots (snapshotData: SnapshotRecorder.SnapshotData[]): void
  15. destroy (): void
  16. }
  17. declare namespace SnapshotRecorder {
  18. export interface Options {
  19. snapshotPath?: string
  20. mode?: 'record' | 'playback' | 'update'
  21. maxSnapshots?: number
  22. autoFlush?: boolean
  23. flushInterval?: number
  24. matchHeaders?: string[]
  25. ignoreHeaders?: string[]
  26. excludeHeaders?: string[]
  27. matchBody?: boolean
  28. matchQuery?: boolean
  29. caseSensitive?: boolean
  30. shouldRecord?: (requestOpts: any) => boolean
  31. shouldPlayback?: (requestOpts: any) => boolean
  32. excludeUrls?: (string | RegExp)[]
  33. }
  34. export interface Snapshot {
  35. request: {
  36. method: string
  37. url: string
  38. headers: Record<string, string>
  39. body?: string
  40. }
  41. responses: {
  42. statusCode: number
  43. headers: Record<string, string>
  44. body: string
  45. trailers: Record<string, string>
  46. }[]
  47. callCount: number
  48. timestamp: string
  49. }
  50. export interface SnapshotInfo {
  51. hash: string
  52. request: {
  53. method: string
  54. url: string
  55. headers: Record<string, string>
  56. body?: string
  57. }
  58. responseCount: number
  59. callCount: number
  60. timestamp: string
  61. }
  62. export interface SnapshotData {
  63. hash: string
  64. snapshot: Snapshot
  65. }
  66. }
  67. declare class SnapshotAgent extends MockAgent {
  68. constructor (options?: SnapshotAgent.Options)
  69. saveSnapshots (filePath?: string): Promise<void>
  70. loadSnapshots (filePath?: string): Promise<void>
  71. getRecorder (): SnapshotRecorder
  72. getMode (): 'record' | 'playback' | 'update'
  73. clearSnapshots (): void
  74. resetCallCounts (): void
  75. deleteSnapshot (requestOpts: any): boolean
  76. getSnapshotInfo (requestOpts: any): SnapshotRecorder.SnapshotInfo | null
  77. replaceSnapshots (snapshotData: SnapshotRecorder.SnapshotData[]): void
  78. }
  79. declare namespace SnapshotAgent {
  80. export interface Options extends MockAgent.Options {
  81. mode?: 'record' | 'playback' | 'update'
  82. snapshotPath?: string
  83. maxSnapshots?: number
  84. autoFlush?: boolean
  85. flushInterval?: number
  86. matchHeaders?: string[]
  87. ignoreHeaders?: string[]
  88. excludeHeaders?: string[]
  89. matchBody?: boolean
  90. matchQuery?: boolean
  91. caseSensitive?: boolean
  92. shouldRecord?: (requestOpts: any) => boolean
  93. shouldPlayback?: (requestOpts: any) => boolean
  94. excludeUrls?: (string | RegExp)[]
  95. }
  96. }
  97. export { SnapshotAgent, SnapshotRecorder }