(t *testing.T)
| 142 | } |
| 143 | |
| 144 | func TestWriteFailuresNDJSONAppliesCap(t *testing.T) { |
| 145 | t.Parallel() |
| 146 | |
| 147 | dir := t.TempDir() |
| 148 | path := filepath.Join(dir, "failures.ndjson") |
| 149 | failures := []failure{ |
| 150 | {Package: "example.com/pkg", Test: "TestA", Elapsed: 0.10, Output: strings.Repeat("a", 1000)}, |
| 151 | {Package: "example.com/pkg", Test: "TestB", Elapsed: 0.20, Output: "second"}, |
| 152 | } |
| 153 | summaryLine, err := marshalRecord(truncationRecord{Truncated: true, RemainingFailures: 1}) |
| 154 | require.NoError(t, err) |
| 155 | minimumLine, err := marshalRecord(failureRecord{ |
| 156 | Package: failures[0].Package, |
| 157 | Test: failures[0].Test, |
| 158 | ElapsedS: failures[0].Elapsed, |
| 159 | Output: "", |
| 160 | OutputTruncated: true, |
| 161 | }) |
| 162 | require.NoError(t, err) |
| 163 | capBytes := len(summaryLine) + len(minimumLine) + 20 |
| 164 | |
| 165 | require.NoError(t, writeFailuresNDJSON(path, failures, capBytes)) |
| 166 | content, err := os.ReadFile(path) |
| 167 | require.NoError(t, err) |
| 168 | require.LessOrEqual(t, len(content), capBytes) |
| 169 | |
| 170 | lines := strings.Split(strings.TrimSpace(string(content)), "\n") |
| 171 | require.Len(t, lines, 2) |
| 172 | var first map[string]any |
| 173 | require.NoError(t, json.Unmarshal([]byte(lines[0]), &first)) |
| 174 | require.Equal(t, true, first["output_truncated"]) |
| 175 | require.Equal(t, "TestA", first["test"]) |
| 176 | require.Less(t, len(first["output"].(string)), 1000) |
| 177 | var second map[string]any |
| 178 | require.NoError(t, json.Unmarshal([]byte(lines[1]), &second)) |
| 179 | require.Equal(t, true, second["truncated"]) |
| 180 | require.Equal(t, float64(1), second["remaining_failures"]) |
| 181 | } |
| 182 | |
| 183 | func TestRunPackageLevelFailure(t *testing.T) { |
| 184 | t.Parallel() |
nothing calls this directly
no test coverage detected