Skip to content

Commit abef068

Browse files
committed
refactor: refactored TestCaseParser and TestCaseRun to use MarkdownTable class for parsing and updating test steps
1 parent eb07b93 commit abef068

File tree

5 files changed

+51
-47
lines changed

5 files changed

+51
-47
lines changed

src/testr.Cli/Domain/MarkdownTableParser.cs renamed to src/testr.Cli/Domain/MarkdownTable.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ namespace tomware.TestR;
66
/// A lightweight markdown table parser specifically designed for parsing test steps
77
/// from markdown tables in the format used by TestR test cases.
88
/// </summary>
9-
internal class MarkdownTableParser
9+
internal class MarkdownTable
1010
{
1111
private readonly string _content;
1212

13-
public MarkdownTableParser(string content)
13+
public MarkdownTable(string content)
1414
{
1515
_content = content;
1616
}

src/testr.Cli/Domain/TestCaseExecutor.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
using System.Diagnostics.CodeAnalysis;
2+
13
using Microsoft.Playwright;
24

35
using tomware.TestR;
46

7+
[ExcludeFromCodeCoverage]
58
internal class TestCaseExecutor
69
{
710
private readonly ExecutorConfig _config;
@@ -186,4 +189,4 @@ ILocator locator
186189

187190
return Task.FromResult(true);
188191
}
189-
}
192+
}

src/testr.Cli/Domain/TestCaseParser.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,9 @@ internal async Task<TestCase> ToTestCaseAsync(CancellationToken cancellationToke
6868

6969
private IEnumerable<TestStep> GetTestSteps(string markdownContent)
7070
{
71-
var parser = new MarkdownTableParser(markdownContent);
72-
return parser.ParseTestSteps();
71+
var table = new MarkdownTable(markdownContent);
72+
73+
return table.ParseTestSteps();
7374
}
7475

7576
private string? GetLinkedFile(string file, string? link)

src/testr.Cli/Domain/TestCaseRun.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ CancellationToken cancellationToken
2222
{
2323
var content = await File.ReadAllTextAsync(_testCase.File, cancellationToken);
2424

25-
// Update test steps using MarkdownTableParser
26-
var parser = new MarkdownTableParser(content);
27-
var updatedContent = parser.UpdateTestStepsWithResults(_results);
25+
// Update test steps using MarkdownTable
26+
var table = new MarkdownTable(content);
27+
var updatedContent = table.UpdateTestStepsWithResults(_results);
2828

2929
var lines = updatedContent.Split('\n');
3030

src/testr.Tests/MarkdownTableParserTests.cs renamed to src/testr.Tests/MarkdownTableTests.cs

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace testr.Tests;
44

5-
public class MarkdownTableParserTests
5+
public class MarkdownTableTests
66
{
77
[Fact]
88
public void ParseTestSteps_WithValidTable_ShouldReturnTestSteps()
@@ -23,10 +23,10 @@ public void ParseTestSteps_WithValidTable_ShouldReturnTestSteps()
2323
## Postcondition
2424
";
2525

26-
var parser = new MarkdownTableParser(markdown);
26+
var table = new MarkdownTable(markdown);
2727

2828
// Act
29-
var testSteps = parser.ParseTestSteps().ToList();
29+
var testSteps = table.ParseTestSteps().ToList();
3030

3131
// Assert
3232
Assert.Equal(4, testSteps.Count);
@@ -48,10 +48,10 @@ public void ParseTestSteps_WithEscapedQuotes_ShouldHandleCorrectly()
4848
| 1 | test escaped | Locator=GetByText Text=""Invalid login attempt for user 'Albert'"" Action=IsVisible | shows error message | - |
4949
";
5050

51-
var parser = new MarkdownTableParser(markdown);
51+
var table = new MarkdownTable(markdown);
5252

5353
// Act
54-
var testSteps = parser.ParseTestSteps().ToList();
54+
var testSteps = table.ParseTestSteps().ToList();
5555

5656
// Assert
5757
Assert.Single(testSteps);
@@ -70,10 +70,10 @@ public void ParseTestSteps_WithSuccessFailureIndicators_ShouldSetIsSuccess()
7070
| 3 | pending step | test data | expected | - |
7171
";
7272

73-
var parser = new MarkdownTableParser(markdown);
73+
var table = new MarkdownTable(markdown);
7474

7575
// Act
76-
var testSteps = parser.ParseTestSteps().ToList();
76+
var testSteps = table.ParseTestSteps().ToList();
7777

7878
// Assert
7979
Assert.Equal(3, testSteps.Count);
@@ -93,10 +93,10 @@ public void ParseTestSteps_WithNoStepsSection_ShouldReturnEmpty()
9393
Some content without steps section.
9494
";
9595

96-
var parser = new MarkdownTableParser(markdown);
96+
var table = new MarkdownTable(markdown);
9797

9898
// Act
99-
var testSteps = parser.ParseTestSteps().ToList();
99+
var testSteps = table.ParseTestSteps().ToList();
100100

101101
// Assert
102102
Assert.Empty(testSteps);
@@ -114,10 +114,10 @@ public void ParseTestSteps_WithInvalidTableRow_ShouldSkipInvalidRows()
114114
| 2 | another valid | test data | expected | - |
115115
";
116116

117-
var parser = new MarkdownTableParser(markdown);
117+
var table = new MarkdownTable(markdown);
118118

119119
// Act
120-
var testSteps = parser.ParseTestSteps().ToList();
120+
var testSteps = table.ParseTestSteps().ToList();
121121

122122
// Assert
123123
Assert.Equal(2, testSteps.Count);
@@ -137,10 +137,10 @@ public void ParseTestSteps_WithMissingColumns_ShouldIgnoreMissingColumns()
137137
| 3 | another complete | test data | expected | - |
138138
";
139139

140-
var parser = new MarkdownTableParser(markdown);
140+
var table = new MarkdownTable(markdown);
141141

142142
// Act
143-
var testSteps = parser.ParseTestSteps().ToList();
143+
var testSteps = table.ParseTestSteps().ToList();
144144

145145
// Assert
146146
Assert.Equal(3, testSteps.Count);
@@ -159,10 +159,10 @@ public void ParseTestSteps_WithDifferentCommentFormatting_ShouldWork()
159159
| 1 | test step | test data | expected | - |
160160
";
161161

162-
var parser = new MarkdownTableParser(markdown);
162+
var table = new MarkdownTable(markdown);
163163

164164
// Act
165-
var testSteps = parser.ParseTestSteps().ToList();
165+
var testSteps = table.ParseTestSteps().ToList();
166166

167167
// Assert
168168
Assert.Single(testSteps);
@@ -187,10 +187,10 @@ public void ParseTestSteps_WithoutHtmlComments_ShouldParseTableDirectly()
187187
## Postcondition
188188
";
189189

190-
var parser = new MarkdownTableParser(markdown);
190+
var table = new MarkdownTable(markdown);
191191

192192
// Act
193-
var testSteps = parser.ParseTestSteps().ToList();
193+
var testSteps = table.ParseTestSteps().ToList();
194194

195195
// Assert
196196
Assert.Equal(3, testSteps.Count);
@@ -227,10 +227,10 @@ public void ParseTestSteps_WithMultipleTables_ShouldParseFirstValidTable()
227227
| data | here |
228228
";
229229

230-
var parser = new MarkdownTableParser(markdown);
230+
var table = new MarkdownTable(markdown);
231231

232232
// Act
233-
var testSteps = parser.ParseTestSteps().ToList();
233+
var testSteps = table.ParseTestSteps().ToList();
234234

235235
// Assert
236236
Assert.Equal(2, testSteps.Count);
@@ -250,10 +250,10 @@ public void ParseTestSteps_WithDifferentColumnOrder_ShouldStillWork()
250250
| 1 | first step | expected | test data | - |
251251
";
252252

253-
var parser = new MarkdownTableParser(markdown);
253+
var table = new MarkdownTable(markdown);
254254

255255
// Act
256-
var testSteps = parser.ParseTestSteps().ToList();
256+
var testSteps = table.ParseTestSteps().ToList();
257257

258258
// Assert
259259
Assert.Single(testSteps);
@@ -275,10 +275,10 @@ public void ParseTestSteps_WithInvalidTableHeader_ShouldReturnEmpty()
275275
| Data 1 | Data 2 | Data 3 |
276276
";
277277

278-
var parser = new MarkdownTableParser(markdown);
278+
var table = new MarkdownTable(markdown);
279279

280280
// Act
281-
var testSteps = parser.ParseTestSteps().ToList();
281+
var testSteps = table.ParseTestSteps().ToList();
282282

283283
// Assert
284284
Assert.Empty(testSteps);
@@ -305,10 +305,10 @@ public void UpdateTestStepsWithResults_WithSuccessfulResults_ShouldAddCheckmarks
305305
TestStepResult.Success(new TestStep { Id = 2 })
306306
};
307307

308-
var parser = new MarkdownTableParser(markdown);
308+
var table = new MarkdownTable(markdown);
309309

310310
// Act
311-
var result = parser.UpdateTestStepsWithResults(testResults);
311+
var result = table.UpdateTestStepsWithResults(testResults);
312312

313313
// Assert
314314
Assert.Contains("| 1 | enter username | test data | expected | ✅ |", result);
@@ -336,10 +336,10 @@ public void UpdateTestStepsWithResults_WithFailedResults_ShouldAddErrorMessages(
336336
TestStepResult.Failed(new TestStep { Id = 2 }, "Button not found")
337337
};
338338

339-
var parser = new MarkdownTableParser(markdown);
339+
var table = new MarkdownTable(markdown);
340340

341341
// Act
342-
var result = parser.UpdateTestStepsWithResults(testResults);
342+
var result = table.UpdateTestStepsWithResults(testResults);
343343

344344
// Assert
345345
Assert.Contains("| 1 | enter username | test data | expected | ✅ |", result);
@@ -369,10 +369,10 @@ public void UpdateTestStepsWithResults_WithMixedResults_ShouldUpdateCorrectly()
369369
TestStepResult.Success(new TestStep { Id = 3 })
370370
};
371371

372-
var parser = new MarkdownTableParser(markdown);
372+
var table = new MarkdownTable(markdown);
373373

374374
// Act
375-
var result = parser.UpdateTestStepsWithResults(testResults);
375+
var result = table.UpdateTestStepsWithResults(testResults);
376376

377377
// Assert
378378
Assert.Contains("| 1 | step one | data1 | result1 | ✅ |", result);
@@ -401,10 +401,10 @@ public void UpdateTestStepsWithResults_WithNoActualResultColumn_ShouldAddColumn(
401401
TestStepResult.Failed(new TestStep { Id = 2 }, "Login failed")
402402
};
403403

404-
var parser = new MarkdownTableParser(markdown);
404+
var table = new MarkdownTable(markdown);
405405

406406
// Act
407-
var result = parser.UpdateTestStepsWithResults(testResults);
407+
var result = table.UpdateTestStepsWithResults(testResults);
408408

409409
// Assert
410410
Assert.Contains("| 1 | enter username | test data | expected | ✅ |", result);
@@ -428,10 +428,10 @@ public void UpdateTestStepsWithResults_WithEmptyResults_ShouldMarkAllAsSuccess()
428428

429429
var testResults = new List<TestStepResult>(); // Empty results
430430

431-
var parser = new MarkdownTableParser(markdown);
431+
var table = new MarkdownTable(markdown);
432432

433433
// Act
434-
var result = parser.UpdateTestStepsWithResults(testResults);
434+
var result = table.UpdateTestStepsWithResults(testResults);
435435

436436
// Assert
437437
Assert.Contains("| 1 | enter username | test data | expected | ✅ |", result);
@@ -454,10 +454,10 @@ public void UpdateTestStepsWithResults_WithNoTable_ShouldReturnOriginalContent()
454454
TestStepResult.Success(new TestStep { Id = 1 })
455455
};
456456

457-
var parser = new MarkdownTableParser(markdown);
457+
var table = new MarkdownTable(markdown);
458458

459459
// Act
460-
var result = parser.UpdateTestStepsWithResults(testResults);
460+
var result = table.UpdateTestStepsWithResults(testResults);
461461

462462
// Assert
463463
Assert.Equal(markdown, result);
@@ -482,10 +482,10 @@ public void UpdateTestStepsWithResults_WithComplexErrorMessage_ShouldEscapeCorre
482482
TestStepResult.Failed(new TestStep { Id = 1 }, "Error with | pipes and special chars")
483483
};
484484

485-
var parser = new MarkdownTableParser(markdown);
485+
var table = new MarkdownTable(markdown);
486486

487487
// Act
488-
var result = parser.UpdateTestStepsWithResults(testResults);
488+
var result = table.UpdateTestStepsWithResults(testResults);
489489

490490
// Assert
491491
Assert.Contains("| 1 | complex test | test data | expected | ❌ Error with | pipes and special chars |", result);
@@ -520,10 +520,10 @@ public void UpdateTestStepsWithResults_WithMultipleTables_ShouldUpdateOnlyStepsT
520520
TestStepResult.Failed(new TestStep { Id = 1 }, "Test failed")
521521
};
522522

523-
var parser = new MarkdownTableParser(markdown);
523+
var table = new MarkdownTable(markdown);
524524

525525
// Act
526-
var result = parser.UpdateTestStepsWithResults(testResults);
526+
var result = table.UpdateTestStepsWithResults(testResults);
527527

528528
// Assert
529529
Assert.Contains("| Data 1 | Data 2 |", result); // Other table unchanged

0 commit comments

Comments
 (0)