blob: 9f506afbbd1f3c767a4a9abb55ef736640c7e1b9 [file] [log] [blame]
// Copyright (c) 2025, 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.
@OnPlatform({'mac-os': Timeout.factor(2), 'windows': Timeout.factor(10)})
library;
import 'package:hooks_runner/hooks_runner.dart';
import 'package:hooks_runner/src/build_runner/build_runner.dart';
import 'package:test/test.dart';
import '../build_runner/helpers.dart';
import '../helpers.dart';
void main() async {
const name = 'user_defines';
test(
'$name build',
() => inTempDir((tempUri) async {
await copyTestProjects(targetUri: tempUri);
final packageUri = tempUri.resolve('$name/');
await runPubGet(workingDirectory: packageUri, logger: logger);
final logMessages = <String>[];
final pubspecUri = packageUri.resolve('pubspec.yaml');
final result = (await build(
packageUri,
logger,
dartExecutable,
capturedLogs: logMessages,
buildAssetTypes: [.data],
userDefines: UserDefines(workspacePubspec: pubspecUri),
)).success;
expect(result.encodedAssets.length, 0);
// The native assets build runner must be reinvoked if the pubspec
// changes, as the pubspec could contain user-defines.
expect(result.dependencies, contains(pubspecUri));
}),
);
}