snapshot-agent.d.ts 3.0 KB

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