-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsample_template_test.dart
More file actions
85 lines (75 loc) · 2.67 KB
/
sample_template_test.dart
File metadata and controls
85 lines (75 loc) · 2.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
import 'package:devals/src/dataset/file_templates/sample_template.dart';
import 'package:devals/src/dataset/workspace.dart';
import 'package:test/test.dart';
void main() {
group('sampleTemplate()', () {
test('generates sample block with required params only', () {
final result = sampleTemplate(
id: 'test_sample',
difficulty: 'easy',
);
expect(result, contains('id: test_sample'));
expect(result, contains('difficulty: easy'));
expect(result, contains('input:'));
expect(result, contains('target:'));
});
test('includes tags field', () {
final result = sampleTemplate(id: 'test', difficulty: 'easy');
expect(result, contains('tags: []'));
});
test('with git workspace includes git section', () {
final result = sampleTemplate(
id: 'test',
difficulty: 'easy',
workspaceType: WorkspaceType.git,
workspaceValue: 'https://github.com/example/repo.git',
);
expect(result, contains('git:'));
expect(result, contains('https://github.com/example/repo.git'));
});
test('with path workspace includes path section', () {
final result = sampleTemplate(
id: 'test',
difficulty: 'easy',
workspaceType: WorkspaceType.path,
workspaceValue: './project',
);
expect(result, contains('path:'));
expect(result, contains('./project'));
});
test('with template workspace includes template section', () {
final result = sampleTemplate(
id: 'test',
difficulty: 'easy',
workspaceType: WorkspaceType.template,
templatePackage: TemplatePackage.flutterApp,
);
expect(result, contains('flutter_app'));
});
test('without workspace type has no workspace section', () {
final result = sampleTemplate(id: 'test', difficulty: 'easy');
expect(result, isNot(contains('workspace:')));
});
test('generates indented block for appending to task file', () {
final result = sampleTemplate(id: 'test', difficulty: 'medium');
// Should start with indented list marker for inline sample
expect(result, contains(' - id: test'));
});
test('git type with null value uses placeholder', () {
final result = sampleTemplate(
id: 'test',
difficulty: 'easy',
workspaceType: WorkspaceType.git,
);
expect(result, contains('<GIT_REPOSITORY_URL>'));
});
test('path type with null value uses placeholder', () {
final result = sampleTemplate(
id: 'test',
difficulty: 'easy',
workspaceType: WorkspaceType.path,
);
expect(result, contains('<RELATIVE_PATH>'));
});
});
}