Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
6dfa53b0
Unverified
Commit
6dfa53b0
authored
Aug 05, 2021
by
Christopher Fujino
Committed by
GitHub
Aug 05, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[flutter_conductor] pretty-print state JSON file (#87756)
parent
6b32482b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
73 additions
and
2 deletions
+73
-2
state.dart
dev/conductor/lib/state.dart
+5
-2
state_test.dart
dev/conductor/test/state_test.dart
+68
-0
No files found.
dev/conductor/lib/state.dart
View file @
6dfa53b0
...
...
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import
'dart:convert'
show
jsonDecode
,
jsonEn
code
;
import
'dart:convert'
show
JsonEncoder
,
jsonDe
code
;
import
'package:file/file.dart'
show
File
;
import
'package:platform/platform.dart'
;
...
...
@@ -230,10 +230,13 @@ ReleasePhase getNextPhase(ReleasePhase currentPhase) {
return
nextPhase
;
}
// Indent two spaces.
const
JsonEncoder
_encoder
=
JsonEncoder
.
withIndent
(
' '
);
void
writeStateToFile
(
File
file
,
pb
.
ConductorState
state
,
List
<
String
>
logs
)
{
state
.
logs
.
addAll
(
logs
);
file
.
writeAsStringSync
(
jsonEncode
(
state
.
toProto3Json
()),
_encoder
.
convert
(
state
.
toProto3Json
()),
flush:
true
,
);
}
...
...
dev/conductor/test/state_test.dart
0 → 100644
View file @
6dfa53b0
// 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
);
});
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment