|
8 | 8 | "testing" |
9 | 9 |
|
10 | 10 | "github.com/stretchr/testify/assert" |
| 11 | + "github.com/stretchr/testify/mock" |
11 | 12 | "github.com/stretchr/testify/require" |
12 | 13 | "github.com/symflower/eval-dev-quality/evaluate/metrics" |
13 | 14 | metricstesting "github.com/symflower/eval-dev-quality/evaluate/metrics/testing" |
@@ -123,6 +124,52 @@ func TestWriteTestsRun(t *testing.T) { |
123 | 124 | }) |
124 | 125 | }) |
125 | 126 |
|
| 127 | + { |
| 128 | + temporaryDirectoryPath := t.TempDir() |
| 129 | + repositoryPath := filepath.Join(temporaryDirectoryPath, "golang", "plain") |
| 130 | + require.NoError(t, osutil.CopyTree(filepath.Join("..", "..", "testdata", "golang", "plain"), repositoryPath)) |
| 131 | + |
| 132 | + modelMock := modeltesting.NewMockCapabilityWriteTestsNamed(t, "mocked-model") |
| 133 | + // Simulate that a model does not generate anything. |
| 134 | + modelMock.MockCapabilityWriteTests.On("WriteTests", mock.Anything).Return(metricstesting.AssessmentsWithProcessingTime, nil) |
| 135 | + |
| 136 | + validate(t, &tasktesting.TestCaseTask{ |
| 137 | + Name: "Reset symflower template so it's not mistaken for model solution", |
| 138 | + |
| 139 | + Model: modelMock, |
| 140 | + Language: &golang.Language{}, |
| 141 | + TestDataPath: temporaryDirectoryPath, |
| 142 | + RepositoryPath: filepath.Join("golang", "plain"), |
| 143 | + |
| 144 | + ExpectedRepositoryAssessment: map[string]map[evaltask.Identifier]metrics.Assessments{ |
| 145 | + "plain.go": map[evaltask.Identifier]metrics.Assessments{ |
| 146 | + IdentifierWriteTests: metrics.Assessments{ |
| 147 | + metrics.AssessmentKeyFilesExecutedMaximumReachable: 1, |
| 148 | + metrics.AssessmentKeyResponseNoError: 1, |
| 149 | + }, |
| 150 | + IdentifierWriteTestsSymflowerFix: metrics.Assessments{ |
| 151 | + metrics.AssessmentKeyFilesExecutedMaximumReachable: 1, |
| 152 | + metrics.AssessmentKeyResponseNoError: 1, |
| 153 | + }, |
| 154 | + IdentifierWriteTestsSymflowerTemplate: metrics.Assessments{ |
| 155 | + metrics.AssessmentKeyFilesExecutedMaximumReachable: 1, |
| 156 | + metrics.AssessmentKeyResponseNoError: 1, |
| 157 | + }, |
| 158 | + IdentifierWriteTestsSymflowerTemplateSymflowerFix: metrics.Assessments{ |
| 159 | + metrics.AssessmentKeyFilesExecutedMaximumReachable: 1, |
| 160 | + metrics.AssessmentKeyResponseNoError: 1, |
| 161 | + }, |
| 162 | + }, |
| 163 | + }, |
| 164 | + ExpectedProblemContains: []string{ |
| 165 | + "ERROR: no test files found", |
| 166 | + "ERROR: no test files found", |
| 167 | + "ERROR: no test files found", |
| 168 | + "ERROR: no test files found", |
| 169 | + }, |
| 170 | + }) |
| 171 | + } |
| 172 | + |
126 | 173 | t.Run("Symflower Fix", func(t *testing.T) { |
127 | 174 | t.Run("Go", func(t *testing.T) { |
128 | 175 | validateGo := func(t *testing.T, testName string, language language.Language, testFileContent string, expectedAssessments map[string]map[evaltask.Identifier]metrics.Assessments, expectedProblems []string, assertTestsPass bool) { |
|
0 commit comments