Skip to content

Commit 4d0e82e

Browse files
authored
Changed test class comment generation either from instructions.md, introduction.md or description.md. (#659)
1 parent f698fe2 commit 4d0e82e

2 files changed

Lines changed: 52 additions & 2 deletions

File tree

dev/src/ExercismDev/ExercismExerciseGenerator.class.st

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,17 @@ ExercismExerciseGenerator >> testClassName [
471471
{ #category : 'internal' }
472472
ExercismExerciseGenerator >> testDescription [
473473
474-
^ (self exerciseDirReference / 'description.md') contents
475-
474+
| descriptionFile |
475+
descriptionFile := self exerciseDirReference / 'description.md'.
476+
descriptionFile isFile ifTrue: [ ^ descriptionFile contents].
477+
478+
"if description.md is missing, use introduction.md and instructions.md (new way)"
479+
^ String streamContents: [:aStream |
480+
aStream
481+
nextPutAll: (self exerciseDirReference / 'introduction.md') contents;
482+
cr;
483+
nextPutAll: (self exerciseDirReference / 'instructions.md') contents
484+
]
476485
]
477486
478487
{ #category : 'internal' }

dev/src/ExercismTests/ExercismExerciseGeneratorTest.class.st

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,35 @@ ExercismExerciseGeneratorTest >> createMockExerciseDirectory [
9797
^ exerciseDir
9898
]
9999

100+
{ #category : 'setup' }
101+
ExercismExerciseGeneratorTest >> createMockExerciseDirectoryWithInstructions [
102+
|memFileRef exerciseDir |
103+
memFileRef := FileSystem memory root.
104+
exerciseDir := (memFileRef / 'mock-exercise') ensureCreateDirectory.
105+
106+
"exercise description"
107+
(exerciseDir / 'introduction.md')
108+
ensureCreateFile;
109+
writeStreamDo: [:aStream |
110+
aStream << '# Introduction'; cr; cr.
111+
aStream << 'Some introduction.'; cr.
112+
].
113+
(exerciseDir / 'instructions.md')
114+
ensureCreateFile;
115+
writeStreamDo: [:aStream |
116+
aStream << '# Instructions'; cr; cr.
117+
aStream << 'Some instructions.'; cr.
118+
].
119+
120+
"canonical test cases"
121+
(exerciseDir / 'canonical-data.json')
122+
ensureCreateFile;
123+
writeStreamDo: [:aStream |
124+
aStream << self canonicalTestSampleJson
125+
].
126+
^ exerciseDir
127+
]
128+
100129
{ #category : 'setup' }
101130
ExercismExerciseGeneratorTest >> mockClassName [
102131

@@ -226,3 +255,15 @@ ExercismExerciseGeneratorTest >> testSetupAppendInfoFromExistingTestClass [
226255
generator setupAppendInfoFromExistingTestClass.
227256
self assert: generator existingAppendInfo equals: 'TBD'.
228257
]
258+
259+
{ #category : 'tests' }
260+
ExercismExerciseGeneratorTest >> testTestDescription [
261+
262+
|generator|
263+
generator := ExercismExerciseGenerator new generateExerciseFrom: self createMockExerciseDirectory; yourself.
264+
self assert: (generator testDescription includesSubstring: (String loremIpsum: 100)).
265+
266+
generator := ExercismExerciseGenerator new generateExerciseFrom: self createMockExerciseDirectoryWithInstructions; yourself.
267+
self assert: (generator testDescription includesSubstring: '# Introduction').
268+
self assert: (generator testDescription includesSubstring: '# Instructions').
269+
]

0 commit comments

Comments
 (0)