| // Copyright 2014 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:conductor_core/src/proto/conductor_state.pb.dart' as pb; |
| import 'package:conductor_core/src/state.dart'; |
| import 'package:file/file.dart'; |
| import 'package:file/memory.dart'; |
| |
| import './common.dart'; |
| |
| void main() { |
| test('writeStateToFile() pretty-prints JSON with 2 spaces', () { |
| final MemoryFileSystem fileSystem = MemoryFileSystem.test(); |
| final File stateFile = fileSystem.file('/path/to/statefile.json') |
| ..createSync(recursive: true); |
| const String candidateBranch = 'flutter-2.3-candidate.0'; |
| final pb.ConductorState state = pb.ConductorState( |
| releaseChannel: 'stable', |
| releaseVersion: '2.3.4', |
| engine: pb.Repository( |
| candidateBranch: candidateBranch, |
| upstream: pb.Remote( |
| name: 'upstream', |
| url: 'git@github.com:flutter/engine.git', |
| ), |
| ), |
| framework: pb.Repository( |
| candidateBranch: candidateBranch, |
| upstream: pb.Remote( |
| name: 'upstream', |
| url: 'git@github.com:flutter/flutter.git', |
| ), |
| ), |
| ); |
| writeStateToFile( |
| stateFile, |
| state, |
| <String>['[status] hello world'], |
| ); |
| final String serializedState = stateFile.readAsStringSync(); |
| const String expectedString = ''' |
| { |
| "releaseChannel": "stable", |
| "releaseVersion": "2.3.4", |
| "engine": { |
| "candidateBranch": "flutter-2.3-candidate.0", |
| "upstream": { |
| "name": "upstream", |
| "url": "git@github.com:flutter/engine.git" |
| } |
| }, |
| "framework": { |
| "candidateBranch": "flutter-2.3-candidate.0", |
| "upstream": { |
| "name": "upstream", |
| "url": "git@github.com:flutter/flutter.git" |
| } |
| }, |
| "logs": [ |
| "[status] hello world" |
| ] |
| }'''; |
| expect(serializedState, expectedString); |
| }); |
| } |