| 92 | } |
| 93 | |
| 94 | func (r *MockReader) readNextJSONLine() ([]byte, error) { |
| 95 | for { |
| 96 | select { |
| 97 | case <-r.ctx.Done(): |
| 98 | return nil, r.ctx.Err() |
| 99 | default: |
| 100 | } |
| 101 | |
| 102 | line, err := r.reader.ReadString('\n') |
| 103 | r.lineNum++ |
| 104 | |
| 105 | if err != nil { |
| 106 | if err == io.EOF { |
| 107 | r.done = true |
| 108 | trimmed := strings.TrimSpace(line) |
| 109 | if len(trimmed) > 0 { |
| 110 | return []byte(trimmed), nil |
| 111 | } |
| 112 | return nil, io.EOF |
| 113 | } |
| 114 | return nil, fmt.Errorf("failed to read line %d: %w", r.lineNum, err) |
| 115 | } |
| 116 | |
| 117 | trimmed := strings.TrimSpace(line) |
| 118 | if len(trimmed) == 0 { |
| 119 | continue // skip empty lines |
| 120 | } |
| 121 | return []byte(trimmed), nil |
| 122 | } |
| 123 | } |
| 124 | |
| 125 | func (r *MockReader) readNextYAMLDocument() ([]byte, error) { |
| 126 | var buffer bytes.Buffer |