flutter_build_wasm_test.dart 1.51 KB
Newer Older
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
// 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>[
      'flutter.js',
      'flutter_service_worker.js',
      'index.html',
      'main.dart.wasm',
54
      'main.dart.mjs',
55 56 57 58 59 60
      'main.dart.js',
    ]) {
      expect(appBuildDir.childFile(filename), exists);
    }
  });
}