blob: 8bc10660b05d41e3dac481c18415cfed62c1adf3 [file] [log] [blame]
// Copyright (c) 2021, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:io';
import 'package:dartdev/src/commands/create.dart';
import 'package:test/test.dart';
import '../utils.dart';
void main() {
group('create integration', defineCreateTests, timeout: longTimeout);
}
void defineCreateTests() {
TestProject p;
setUp(() => p = null);
tearDown(() => p?.dispose());
// Create tests for each template.
for (String templateId in CreateCommand.legalTemplateIds) {
test(templateId, () {
p = project();
ProcessResult createResult = p.runSync([
'create',
'--force',
'--template',
templateId,
'template_project',
]);
expect(createResult.exitCode, 0, reason: createResult.stderr);
// Validate that the project analyzes cleanly.
// TODO: Should we use --fatal-infos here?
ProcessResult analyzeResult =
p.runSync(['analyze'], workingDir: p.dir.path);
expect(analyzeResult.exitCode, 0, reason: analyzeResult.stdout);
// Validate that the code is well formatted.
ProcessResult formatResult = p.runSync([
'format',
'--output',
'none',
'--set-exit-if-changed',
'template_project',
]);
expect(formatResult.exitCode, 0, reason: formatResult.stdout);
});
}
}