blob: 5924b5af4ec3f4d2ee6686c67941d2d047d3c9d1 [file] [log] [blame]
// Copyright (c) 2019, 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 'package:mockito/mockito.dart';
import 'package:test/test.dart';
import '../result.dart';
import 'fakes.dart';
import 'test_data.dart';
void main() async {
test('Base builder test', () async {
final builderTest = BuilderTest(landedCommitHash, landedCommitChange);
await builderTest.update();
});
test("Get info for already saved commit", () async {
final builderTest = BuilderTest(existingCommitHash, existingCommitChange);
await builderTest.storeBuildCommitsInfo();
expect(builderTest.builder.endIndex, existingCommitIndex);
expect(builderTest.builder.startIndex, previousCommitIndex + 1);
});
test("Link landed commit to review", () async {
final builderTest = BuilderTest(landedCommitHash, landedCommitChange);
builderTest.firestore.commits
.removeWhere((key, value) => value[fIndex] > existingCommitIndex);
when(builderTest.client.get(any))
.thenAnswer((_) => Future(() => ResponseFake(gitilesLog)));
await builderTest.storeBuildCommitsInfo();
await builderTest.builder.fetchReviewsAndReverts();
expect(builderTest.builder.endIndex, landedCommitIndex);
expect(builderTest.builder.startIndex, existingCommitIndex + 1);
expect(builderTest.builder.tryApprovals,
{testResult(review44445Result): 54, testResult(review77779Result): 53});
expect(await builderTest.firestore.getCommit(commit53Hash), commit53);
expect(
await builderTest.firestore.getCommit(landedCommitHash), landedCommit);
});
test("update previous active result", () async {
final builderTest = BuilderTest(landedCommitHash, landedCommitChange);
await builderTest.storeBuildCommitsInfo();
await builderTest.storeChange(landedCommitChange);
expect(builderTest.builder.success, true);
expect(
builderTest.firestore.results['activeResultID'],
Map.from(activeResult)
..[fActiveConfigurations] = ['another configuration']);
final changeAnotherConfiguration =
Map<String, dynamic>.from(landedCommitChange)
..['configuration'] = 'another configuration';
await builderTest.storeChange(changeAnotherConfiguration);
expect(builderTest.builder.success, true);
expect(builderTest.firestore.results['activeResultID'],
Map.from(activeResult)..remove(fActiveConfigurations)..remove(fActive));
expect(builderTest.builder.countApprovalsCopied, 1);
expect(builderTest.builder.countChanges, 2);
expect(
builderTest.firestore.results[await builderTest.firestore.findResult(
landedCommitChange, landedCommitIndex, landedCommitIndex)],
landedResult);
expect(
(await builderTest.firestore.findActiveResults(landedCommitChange))
..single.remove('id'),
[landedResult]);
});
}