Skip to content

Commit a3dabc9

Browse files
authored
build: switch to yaml file for size test golden (#19621)
* build: move nav-list size-test into dedicated `list` folder For consistency with other size-tests's we are going to add, we should move the nav-list one into a folder that is dedicated for list size tests. * build: switch to yaml file for size test golden Switches the size-test golden from a JSON file to a Yaml file. The motivation is that JSON files quickly can result in merge conflicts. This is mostly because of trailing commas that need to be added when new entries are added to the size-test golden. This should be improved with YAML where a new entry can be added without having to change existing ones.
1 parent 366852c commit a3dabc9

File tree

11 files changed

+27
-13
lines changed

11 files changed

+27
-13
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@
321321
/.github/ISSUE_TEMPLATE/** @andrewseguin @jelbourn
322322
/.vscode/** @angular/dev-infra-components @mmalerba
323323
/.ng-dev/** @angular/dev-infra-components
324-
/goldens/size-test.json @jelbourn @mmalerba @crisbeto
324+
/goldens/size-test.yml @jelbourn @mmalerba @crisbeto
325325
/goldens/** @angular/dev-infra-components
326326
/src/* @angular/dev-infra-components
327327
/* @angular/dev-infra-components

goldens/BUILD.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
exports_files([
2-
"size-test.json",
2+
"size-test.yaml",
33
])

goldens/size-test.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

goldens/size-test.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
material/list/nav-list: 153231

integration/size-test/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ ts_library(
1212
srcs = ["check-size.ts"],
1313
deps = [
1414
"@npm//@types/node",
15+
"@npm//@types/yaml",
1516
"@npm//chalk",
17+
"@npm//yaml",
1618
],
1719
)

integration/size-test/check-size.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import chalk from 'chalk';
88
import {readFileSync, statSync, writeFileSync} from 'fs';
9+
import {parse, stringify} from 'yaml';
910

1011
/**
1112
* Absolute byte deviation from the expected value that is allowed. If the
@@ -27,16 +28,16 @@ const PERCENTAGE_DEVIATION_THRESHOLD = 1;
2728
*/
2829
const [testId, testFileRootpath, isApprove] = process.argv.slice(2);
2930
const testFilePath = require.resolve(`angular_material/${testFileRootpath}`);
30-
const goldenFilePath = require.resolve('../../goldens/size-test.json');
31+
const goldenFilePath = require.resolve('../../goldens/size-test.yaml');
3132

32-
const golden = JSON.parse(readFileSync(goldenFilePath, 'utf8'));
33+
const golden = parse(readFileSync(goldenFilePath, 'utf8')) || {};
3334
const fileStat = statSync(testFilePath);
3435
const actualSize = fileStat.size;
3536

3637
// If in approve mode, update the golden to reflect the new size.
3738
if (isApprove) {
3839
golden[testId] = actualSize;
39-
writeFileSync(goldenFilePath, JSON.stringify(golden, null, 2));
40+
writeFileSync(goldenFilePath, stringify(golden));
4041
console.info(chalk.green(`Approved golden size for "${testId}"`));
4142
process.exit(0);
4243
}

integration/size-test/index.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def size_test(name, file, deps):
5353
nodejs_test(
5454
name = name,
5555
data = [
56-
"//goldens:size-test.json",
56+
"//goldens:size-test.yaml",
5757
"//integration/size-test:check-size",
5858
":%s_bundle_min" % name,
5959
],
@@ -65,7 +65,7 @@ def size_test(name, file, deps):
6565
name = "%s.approve" % name,
6666
testonly = True,
6767
data = [
68-
"//goldens:size-test.json",
68+
"//goldens:size-test.yaml",
6969
"//integration/size-test:check-size",
7070
":%s_bundle_min" % name,
7171
],
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
load("//integration/size-test:index.bzl", "size_test")
22

33
size_test(
4-
name = "list",
5-
file = "list.ts",
4+
name = "nav-list",
5+
file = "nav-list.ts",
66
deps = ["//src/material/list"],
77
)

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
"@types/semver": "^6.2.0",
104104
"@types/send": "^0.14.5",
105105
"@types/stylelint": "^9.10.1",
106+
"@types/yaml": "^1.9.7",
106107
"autoprefixer": "^6.7.6",
107108
"axe-webdriverjs": "^1.1.1",
108109
"browser-sync": "^2.26.7",
@@ -167,7 +168,7 @@
167168
"typescript-3.7": "npm:typescript@~3.7.0",
168169
"typescript-3.8": "npm:typescript@~3.8.0",
169170
"vrsource-tslint-rules": "5.1.1",
170-
"yaml": "^1.7.2",
171+
"yaml": "^1.10.0",
171172
"yargs": "15.3.0"
172173
},
173174
"resolutions": {

yarn.lock

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,6 +1643,13 @@
16431643
dependencies:
16441644
"@types/node" "*"
16451645

1646+
"@types/yaml@^1.9.7":
1647+
version "1.9.7"
1648+
resolved "https://registry.yarnpkg.com/@types/yaml/-/yaml-1.9.7.tgz#2331f36e0aac91311a63d33eb026c21687729679"
1649+
integrity sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==
1650+
dependencies:
1651+
yaml "*"
1652+
16461653
"@types/youtube@^0.0.38":
16471654
version "0.0.38"
16481655
resolved "https://registry.yarnpkg.com/@types/youtube/-/youtube-0.0.38.tgz#04aa5efa61f4d52e9cf682575a9dfed58f31e8c1"
@@ -12759,6 +12766,11 @@ yallist@^3.0.0, yallist@^3.0.2:
1275912766
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
1276012767
integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
1276112768

12769+
yaml@*, yaml@^1.10.0:
12770+
version "1.10.0"
12771+
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"
12772+
integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==
12773+
1276212774
yaml@^1.7.2:
1276312775
version "1.7.2"
1276412776
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"

0 commit comments

Comments
 (0)