blob: d274eb1d39c689316a09f60492edda999cc08bc5 [file] [log] [blame]
// Copyright 2019 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 'package:cocoon_service/src/request_handlers/update_timeseries.dart';
import 'package:cocoon_service/src/model/appengine/time_series.dart';
import 'package:cocoon_service/src/service/datastore.dart';
import 'package:gcloud/db.dart';
import 'package:test/test.dart';
import '../src/datastore/fake_cocoon_config.dart';
import '../src/request_handling/api_request_handler_tester.dart';
import '../src/request_handling/fake_authentication.dart';
void main() {
group('UpdateTimeSeries', () {
FakeConfig config;
ApiRequestHandlerTester tester;
UpdateTimeSeries handler;
setUp(() {
config = FakeConfig();
tester = ApiRequestHandlerTester();
tester.requestData = <String, dynamic>{
'TimeSeriesKey':
'ahNzfmZsdXR0ZXItZGFzaGJvYXJkcjULEgpUaW1lc2VyaWVzIiVhbmFseXplcl9iZW5jaG1hcmsuZmx1dHRlcl9yZXBvX2JhdGNoDA',
'Archived': true,
'Baseline': 4.0,
'Goal': -2.3,
'Label': 'flutter_repo_batch',
'TaskName': 'analyzer_benchmark',
'Unit': 's'
};
handler = UpdateTimeSeries(
config,
FakeAuthenticationProvider(),
datastoreProvider: (DatastoreDB db) => DatastoreService(config.db, 5),
);
});
test('updates datastore entry for benchmark targets', () async {
final TimeSeries timeSeries = TimeSeries(
key: config.db.emptyKey
.append(TimeSeries, id: 'analyzer_benchmark.flutter_repo_batch'));
config.db.values[timeSeries.key] = timeSeries;
expect(timeSeries.archived, false);
expect(timeSeries.baseline, isNot(4));
expect(timeSeries.goal, isNot(-2.3));
expect(timeSeries.label, isNot('flutter_repo_batch'));
expect(timeSeries.taskName, isNot('analyzer_benchmark'));
expect(timeSeries.unit, isNot('s'));
final UpdateTimeSeriesResponse response = await tester.post(handler);
expect(response.timeSeries.archived, true);
expect(response.timeSeries.baseline, 4.0);
expect(response.timeSeries.goal, 0);
expect(response.timeSeries.label, 'flutter_repo_batch');
expect(response.timeSeries.taskName, 'analyzer_benchmark');
expect(response.timeSeries.unit, 's');
});
});
}