blob: dcc5719deca43158945ea4fc7146566d5a64ae6a [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/model/appengine/commit.dart';
import 'package:cocoon_service/src/model/appengine/task.dart';
import 'package:cocoon_service/src/request_handlers/reset_devicelab_task.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/datastore/fake_datastore.dart';
import '../src/request_handling/api_request_handler_tester.dart';
import '../src/request_handling/fake_authentication.dart';
void main() {
group('ResetDevicelabTask', () {
FakeConfig config;
ApiRequestHandlerTester tester;
ResetDevicelabTask handler;
setUp(() {
final FakeDatastoreDB datastoreDB = FakeDatastoreDB();
config = FakeConfig(dbValue: datastoreDB);
tester = ApiRequestHandlerTester();
tester.requestData = <String, dynamic>{
'Key':
'ag9zfnR2b2xrZXJ0LXRlc3RyWAsSCUNoZWNrbGlzdCI4Zmx1dHRlci9mbHV0dGVyLzdkMDMzNzE2MTBjMDc5NTNhNWRlZjUwZDUwMDA0NTk0MWRlNTE2YjgMCxIEVGFzaxiAgIDg5eGTCAw',
};
handler = ResetDevicelabTask(
config,
FakeAuthenticationProvider(),
datastoreProvider: (DatastoreDB db) => DatastoreService(config.db, 5),
);
});
test('disables attempts increase when resetting devicelab task', () async {
final Commit commit = Commit(
key: config.db.emptyKey.append(Commit,
id: 'flutter/flutter/7d03371610c07953a5def50d500045941de516b8'));
final Task task = Task(
key: commit.key.append(Task, id: 4590522719010816),
commitKey: commit.key,
attempts: 0,
status: 'Failed');
config.db.values[task.key] = task;
expect(task.attempts, 0);
await tester.post(handler);
// Reset devicelab task will not increase [attempts].
expect(task.attempts, 0);
expect(task.status, 'New');
});
});
}