flutter/packages/flutter_tools/test/integration.shard/flutter_build_wasm_test.dart
Jackson Gardner 9f2c5d8e21
Support flutter build web --wasm (#117075)
* Work in progress.

* Some fixes to the command line.

* Bootstrapping works.

* Change kickoff order to maximize concurrency.

* Fix analyzer errors and formatting issues.

* Fix doc comment.

* Added unit tests for some of the web targets.

* Format issue.

* Add an integration test that builds an app to wasm.

* Add a todo for depfiles.

* Formatting.

* Apparently the license header needs to say 2014.

* `file://` URIs confuse dart2wasm on Windows. Just use absolute paths.

* Update unit tests to match new path passing.

* Have a distinct build directory for wasm, and fixes for some upstream changes.
2022-12-19 20:09:02 +00:00

61 lines
1.5 KiB
Dart

// Copyright 2014 The Flutter Authors. 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:file_testing/file_testing.dart';
import 'package:flutter_tools/src/base/file_system.dart';
import '../src/common.dart';
import 'test_utils.dart';
void main() {
late Directory tempDir;
late String flutterBin;
late Directory exampleAppDir;
setUp(() async {
tempDir = createResolvedTempDirectorySync('flutter_web_wasm_test.');
flutterBin = fileSystem.path.join(
getFlutterRoot(),
'bin',
'flutter',
);
exampleAppDir = tempDir.childDirectory('test_app');
processManager.runSync(<String>[
flutterBin,
'create',
'--platforms=web',
'test_app',
], workingDirectory: tempDir.path);
});
test('building web with --wasm produces expected files', () async {
final ProcessResult result = processManager.runSync(<String>[
flutterBin,
'build',
'web',
'--wasm',
], workingDirectory: exampleAppDir.path);
expect(result.exitCode, 0);
final Directory appBuildDir = fileSystem.directory(fileSystem.path.join(
exampleAppDir.path,
'build',
'web_wasm'
));
for (final String filename in const <String>[
'dart2wasm_runtime.mjs',
'flutter.js',
'flutter_service_worker.js',
'index.html',
'main.dart.wasm',
'main.dart.js',
]) {
expect(appBuildDir.childFile(filename), exists);
}
});
}