state_test.dart 1.94 KB
Newer Older
1 2 3 4
// 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.

5 6
import 'package:conductor_core/src/proto/conductor_state.pb.dart' as pb;
import 'package:conductor_core/src/state.dart';
7 8 9 10 11 12 13 14 15 16 17
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';
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
    final pb.ConductorState state = pb.ConductorState.create()
      ..releaseChannel = 'stable'
      ..releaseVersion = '2.3.4'
      ..engine = (pb.Repository.create()
        ..candidateBranch = candidateBranch
        ..upstream = (pb.Remote.create()
          ..name = 'upstream'
          ..url = 'git@github.com:flutter/engine.git'
        )
      )
      ..framework = (pb.Repository.create()
        ..candidateBranch = candidateBranch
        ..upstream = (pb.Remote.create()
          ..name = 'upstream'
          ..url = 'git@github.com:flutter/flutter.git'
        )
      );
35 36 37 38 39 40 41 42 43 44 45 46 47 48
    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",
49
      "url": "git@github.com:flutter/engine.git"
50 51 52 53 54 55
    }
  },
  "framework": {
    "candidateBranch": "flutter-2.3-candidate.0",
    "upstream": {
      "name": "upstream",
56
      "url": "git@github.com:flutter/flutter.git"
57 58 59 60
    }
  },
  "logs": [
    "[status] hello world"
61
  ]
62 63 64 65
}''';
    expect(serializedState, expectedString);
  });
}