blob: fae5715186b774b2cd7c4c5f8f6dd07b69d5ad05 [file] [log] [blame] [edit]
// Copyright (c) 2023, 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:convert';
import 'dart:io';
import 'package:file_testing/file_testing.dart';
import 'package:hooks/hooks.dart';
import 'package:test/test.dart';
void main() async {
late Uri tempUri;
late Uri outFile;
late Uri outDirUri;
late Uri outputDirectoryShared;
late String packageName;
late Uri packageRootUri;
late Uri buildInputUri;
late BuildInput input;
setUp(() async {
tempUri = (await Directory.systemTemp.createTemp()).uri;
outFile = tempUri.resolve('output.json');
outDirUri = tempUri.resolve('out1/');
await Directory.fromUri(outDirUri).create();
outputDirectoryShared = tempUri.resolve('out_shared1/');
packageName = 'my_package';
packageRootUri = tempUri.resolve('$packageName/');
await Directory.fromUri(packageRootUri).create();
final inputBuilder = BuildInputBuilder();
inputBuilder
..setupShared(
packageRoot: tempUri,
packageName: packageName,
outputFile: outFile,
outputDirectoryShared: outputDirectoryShared,
)
..config.setupBuild(linkingEnabled: false);
input = inputBuilder.build();
final inputJson = json.encode(input.json);
buildInputUri = tempUri.resolve('input.json');
await File.fromUri(buildInputUri).writeAsString(inputJson);
});
test('build method', () async {
await build(['--config', buildInputUri.toFilePath()], (
input,
output,
) async {
output.dependencies.add(packageRootUri.resolve('foo'));
});
final buildOutputUri = input.outputFile;
expect(File.fromUri(buildOutputUri), exists);
});
}