state_test.dart 1.93 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
// 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/proto/conductor_state.pb.dart' as pb;
import 'package:conductor/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',
      incrementLevel: 'z',
      engine: pb.Repository(
        candidateBranch: candidateBranch,
        upstream: pb.Remote(
          name: 'upstream',
          url: 'https://github.com/flutter/engine.git',
        ),
      ),
      framework: pb.Repository(
        candidateBranch: candidateBranch,
        upstream: pb.Remote(
          name: 'upstream',
          url: 'https://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": "https://github.com/flutter/engine.git"
    }
  },
  "framework": {
    "candidateBranch": "flutter-2.3-candidate.0",
    "upstream": {
      "name": "upstream",
      "url": "https://github.com/flutter/flutter.git"
    }
  },
  "logs": [
    "[status] hello world"
  ],
  "incrementLevel": "z"
}''';
    expect(serializedState, expectedString);
  });
}