Skip to content

Commit c33c57b

Browse files
committed
fix: fixed failing tests
1 parent 4fe6701 commit c33c57b

File tree

4 files changed

+79
-46
lines changed

4 files changed

+79
-46
lines changed

.github/workflows/code_quality.yml

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,8 @@ jobs:
4444
- name: Install Dependencies
4545
run: melos exec -- "dart pub get"
4646

47-
- name: Build runner
48-
run: melos exec --depends-on="build_runner" -- bash -c "cd \$MELOS_PACKAGE_PATH && dart run build_runner build --delete-conflicting-outputs"
47+
# - name: Build runner
48+
# run: melos exec --depends-on="build_runner" -- bash -c "cd \$MELOS_PACKAGE_PATH && dart run build_runner build --delete-conflicting-outputs"
4949
- name: Validate formatting
5050
run: melos format --set-exit-if-changed
5151
- name: Run analyzer
@@ -65,38 +65,22 @@ jobs:
6565
run: dart pub global activate coverage
6666

6767
- name: Install Coverage Tools
68-
run: dart pub global activate coverage combine_coverage
68+
run: dart pub global activate combine_coverage
6969

70-
- name: Format Coverage for Each Package
71-
run: |
72-
# Find each package's coverage directory and format to lcov
73-
for dir in $(find . -name "coverage" -type d); do
74-
$HOME/.pub-cache/bin/format_coverage \
75-
--lcov \
76-
--in=$dir \
77-
--out=$dir/coverage.lcov \
78-
--packages=$dir/../.packages \
79-
--report-on=lib
80-
done
70+
- name: format coverage
71+
run: melos exec -- bash "$HOME/.pub-cache/bin/format_coverage --lcov --in=\$MELOS_PACKAGE_PATH/coverage/test --out=\$MELOS_PACKAGE_PATH/coverage/lcov.info --report-on=lib"
8172

8273
- name: Combine Coverage Reports
83-
run: |
84-
mkdir -p coverage # Create a root coverage folder if it doesn't exist
85-
dart pub global run combine_coverage \
86-
--repo-path="." \
87-
--output=coverage/combined.lcov # Combines all into a single lcov file
74+
run: dart pub global run combine_coverage --repo-path="."
8875

89-
- name: Upload Combined Coverage to Codecov
76+
- name: Upload coverage reports to Codecov
9077
uses: codecov/codecov-action@v3
91-
with:
92-
files: ./coverage/combined.lcov
93-
flags: combined_coverage
94-
name: Combined Code Coverage
95-
fail_ci_if_error: true
9678
env:
97-
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} # Required only for private repositories
79+
files: ./coverage/lcov.info
80+
verbose: true
81+
9882
- name: Stop Docker Container
99-
run: docker-compose -f "docker-compose.yaml" down
83+
run: melos exec --scope="openapi_generator" -- bash -c "cd \$MELOS_PACKAGE_PATH && docker-compose -f "docker-compose.yaml" down"
10084

10185
build:
10286
name: Build example project 🛠️

openapi-generator/test/builder_test.dart

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -263,26 +263,25 @@ class TestClassConfig extends OpenapiGeneratorConfig {}
263263
copy.deleteSync();
264264
expect(hasOutput, isTrue);
265265
});
266+
266267
test('skip updating annotated file', () async {
267-
final annotatedFile = File(
268-
'.${Platform.pathSeparator}test${Platform.pathSeparator}specs${Platform.pathSeparator}output-nextgen${Platform.pathSeparator}annotated_file.dart');
269-
final annotetedFileContent = '\n';
270-
await annotatedFile.writeAsString(annotetedFileContent, flush: true);
268+
// create the cached spec
269+
f.writeAsStringSync(jsonEncode({'someKey': 'someValue'}));
270+
// Read the contents of the annotation we want to test
271+
var annotatedFile =
272+
File('$testSpecPath/skip_update_annotated_file_test_config.dart');
273+
final contents = annotatedFile.readAsStringSync();
274+
final copy = File(
275+
'./test/specs/skip_update_annotated_file_test_config_copy.dart');
276+
copy.writeAsStringSync(contents, flush: true);
271277

272-
generatedOutput = await generate('''
273-
@Openapi(
274-
inputSpecFile: '$specPath',
275-
inputSpec: RemoteSpec(path: '$specPath'),
276-
useNextGen: true,
277-
cachePath: '${f.path}',
278-
updateAnnotatedFile: false,
279-
)
280-
''', path: annotatedFile.path);
281-
expect(
282-
generatedOutput,
283-
contains(
284-
'Skipped updating annotated file step because flag was set.'));
285-
expect(annotatedFile.readAsStringSync(), equals(annotetedFileContent));
278+
generatedOutput = await generateForSource(copy.path, path: copy.path);
279+
280+
var hasOutput = copy.readAsStringSync().contains(lastRunPlaceHolder);
281+
copy.deleteSync();
282+
expect(generatedOutput,
283+
isNot(contains('Creating generated timestamp with ')));
284+
expect(hasOutput, isFalse);
286285
});
287286
group('source gen', () {
288287
group('uses Flutter', () {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import 'package:openapi_generator_annotations/openapi_generator_annotations.dart';
2+
3+
@Openapi(
4+
inputSpec: RemoteSpec(
5+
path:
6+
'https://raw.githubusercontent.com/Nexushunter/tagmine-api/main/openapi.yaml',
7+
),
8+
generatorName: Generator.dio,
9+
updateAnnotatedFile: false,
10+
cachePath: './test/specs/output-nextgen/expected-args/cache.json',
11+
outputDirectory: './test/specs/output-nextgen/expected-args')
12+
class TestClassConfig {}

openapi-generator/test/utils.dart

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:openapi_generator/src/process_runner.dart';
88
import 'package:source_gen/source_gen.dart';
99
import 'package:test_process/test_process.dart';
1010

11-
final String pkgName = 'pkg';
11+
final String pkgName = 'openapi_generator';
1212

1313
final Builder builder = LibraryBuilder(
1414
OpenapiGenerator(ProcessRunnerForTests()),
@@ -20,6 +20,44 @@ final testSpecPath =
2020
///
2121
/// [path] available so an override for the adds generated comment test can
2222
/// compare the output.
23+
Future<String> generateForSource(String annotatedFilePath,
24+
{String path = 'lib/myapp.dart'}) async {
25+
final spec = File('${testSpecPath}openapi.test.yaml').readAsStringSync();
26+
final annotatedContent = File(annotatedFilePath).readAsStringSync();
27+
var srcs = <String, String>{
28+
'openapi_generator|$path': annotatedContent,
29+
'openapi_generator|openapi-spec.yaml': spec
30+
};
31+
32+
// Capture any message from generation; if there is one, return that instead of
33+
// the generated output.
34+
String? logMessage;
35+
void captureLog(dynamic logRecord) {
36+
if (logRecord is OutputMessage) {
37+
logMessage =
38+
'${logMessage ?? ''}\n${logRecord.level} ${logRecord.message} \n ${logRecord.additionalContext} \n ${logRecord.stackTrace}';
39+
} else {
40+
logMessage =
41+
'${logMessage ?? ''}\n${logRecord.message ?? ''}\n${logRecord.error ?? ''}\n${logRecord.stackTrace ?? ''}';
42+
}
43+
}
44+
45+
var writer = InMemoryAssetWriter();
46+
await testBuilder(builder, srcs,
47+
reader: await PackageAssetReader.currentIsolate(),
48+
rootPackage: pkgName,
49+
writer: writer,
50+
onLog: captureLog);
51+
return logMessage ??
52+
String.fromCharCodes(
53+
writer.assets[AssetId(pkgName, 'lib/value.g.dart')] ?? []);
54+
}
55+
56+
/// Runs an in memory test variant of the generator with the given [source].
57+
///
58+
/// [path] available so an override for the adds generated comment test can
59+
/// compare the output.
60+
@Deprecated('Use generateForSource instead')
2361
Future<String> generate(String source, {String path = 'lib/myapp.dart'}) async {
2462
final spec = File('${testSpecPath}openapi.test.yaml').readAsStringSync();
2563
var srcs = <String, String>{

0 commit comments

Comments
 (0)