Project import generated by Copybara.
GitOrigin-RevId: d9e9e3fb4e31372ec1fb43b178994ca78fa8fe70
diff --git a/static_src/shared/metadata-helpers.test.js b/static_src/shared/metadata-helpers.test.js
new file mode 100644
index 0000000..fd04806
--- /dev/null
+++ b/static_src/shared/metadata-helpers.test.js
@@ -0,0 +1,93 @@
+// Copyright 2019 The Chromium 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 {assert} from 'chai';
+import {valuesForField, valueForField, fieldDefsWithGroup, fieldValueMapKey,
+ fieldDefsWithoutGroup, HARDCODED_FIELD_GROUPS} from './metadata-helpers.js';
+
+const fieldDefs = [
+ {
+ fieldRef: {
+ fieldName: 'Ignore',
+ fieldId: 1,
+ },
+ },
+ {
+ fieldRef: {
+ fieldName: 'DesignDoc',
+ fieldId: 2,
+ },
+ },
+];
+const fieldGroups = HARDCODED_FIELD_GROUPS;
+
+const fieldValueMap = new Map([
+ ['field', ['one', 'two', 'three']],
+ ['field-two phase', ['four']],
+ ['field-three', ['five']],
+]);
+
+describe('metadata-helpers', () => {
+ it('valuesForField', () => {
+ assert.deepEqual(valuesForField(fieldValueMap, 'Field-None'), []);
+ assert.deepEqual(valuesForField(fieldValueMap, 'Field'),
+ ['one', 'two', 'three']);
+ assert.deepEqual(valuesForField(fieldValueMap, 'Field-Two', 'Phase'),
+ ['four']);
+ assert.deepEqual(valuesForField(fieldValueMap, 'Field-Three'), ['five']);
+ });
+
+ it('valueForField', () => {
+ assert.equal(valueForField(fieldValueMap, 'Field-None'),
+ undefined);
+ assert.equal(valueForField(fieldValueMap, 'Field-Two', 'Phase'), 'four');
+ assert.equal(valueForField(fieldValueMap, 'Field-Three'), 'five');
+ });
+
+ it('fieldValueMapKey', () => {
+ assert.equal(fieldValueMapKey('test', 'two'), 'test two');
+
+ assert.equal(fieldValueMapKey('noPhase'), 'nophase');
+ });
+
+ it('fieldDefsWithoutGroup ignores non applicable types', () => {
+ assert.deepEqual(fieldDefsWithoutGroup(
+ fieldDefs, fieldGroups, 'ungrouped-type'), fieldDefs);
+ });
+
+ it('fieldDefsWithoutGroup filters grouped fields', () => {
+ assert.deepEqual(fieldDefsWithoutGroup(
+ fieldDefs, fieldGroups, 'flt-launch'), [
+ {
+ fieldRef: {
+ fieldName: 'Ignore',
+ fieldId: 1,
+ },
+ },
+ ]);
+ });
+
+ it('fieldDefsWithGroup filters by type', () => {
+ const filteredGroupsList = [{
+ groupName: 'Docs',
+ fieldDefs: [
+ {
+ fieldRef: {
+ fieldName: 'DesignDoc',
+ fieldId: 2,
+ },
+ },
+ ],
+ }];
+
+ assert.deepEqual(
+ fieldDefsWithGroup(fieldDefs, fieldGroups, 'Not-FLT-Launch'), []);
+
+ assert.deepEqual(fieldDefsWithGroup(fieldDefs, fieldGroups, 'flt-launch'),
+ filteredGroupsList);
+
+ assert.deepEqual(fieldDefsWithGroup(fieldDefs, fieldGroups, 'FLT-LAUNCH'),
+ filteredGroupsList);
+ });
+});