#118667 adopt to deep strict equal

This commit is contained in:
Sandeep Somavarapu
2021-03-31 09:07:42 +02:00
parent 325bea69a7
commit f04401cfa4
3 changed files with 61 additions and 33 deletions
@@ -37,7 +37,12 @@ suite('ConfigurationModel', () => {
testObject.setValue('b.c', 1);
assert.deepEqual(testObject.contents, { 'a': { 'b': 1 }, 'b': { 'c': 1 }, 'f': 1 });
const expected: any = {};
expected['a'] = { 'b': 1 };
expected['f'] = 1;
expected['b'] = Object.create(null);
expected['b']['c'] = 1;
assert.deepStrictEqual(testObject.contents, expected);
assert.deepStrictEqual(testObject.keys, ['a.b', 'f', 'b.c']);
});
@@ -315,17 +320,17 @@ suite('CustomConfigurationModel', () => {
const testObject = new ConfigurationModelParser('test');
testObject.parseContent('');
assert.deepEqual(testObject.configurationModel.contents, {});
assert.deepStrictEqual(testObject.configurationModel.contents, Object.create(null));
assert.deepStrictEqual(testObject.configurationModel.keys, []);
testObject.parseContent(null!);
assert.deepEqual(testObject.configurationModel.contents, {});
assert.deepStrictEqual(testObject.configurationModel.contents, Object.create(null));
assert.deepStrictEqual(testObject.configurationModel.keys, []);
testObject.parseContent(undefined!);
assert.deepEqual(testObject.configurationModel.contents, {});
assert.deepStrictEqual(testObject.configurationModel.contents, Object.create(null));
assert.deepStrictEqual(testObject.configurationModel.keys, []);
});
@@ -53,7 +53,11 @@ suite('FolderSettingsModelParser', () => {
testObject.parseContent(JSON.stringify({ 'FolderSettingsModelParser.window': 'window', 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.application': 'application', 'FolderSettingsModelParser.machine': 'executable' }));
assert.deepEqual(testObject.configurationModel.contents, { 'FolderSettingsModelParser': { 'window': 'window', 'resource': 'resource' } });
const expected = Object.create(null);
expected['FolderSettingsModelParser'] = Object.create(null);
expected['FolderSettingsModelParser']['window'] = 'window';
expected['FolderSettingsModelParser']['resource'] = 'resource';
assert.deepStrictEqual(testObject.configurationModel.contents, expected);
});
test('parse resource folder settings', () => {
@@ -61,7 +65,10 @@ suite('FolderSettingsModelParser', () => {
testObject.parseContent(JSON.stringify({ 'FolderSettingsModelParser.window': 'window', 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.application': 'application', 'FolderSettingsModelParser.machine': 'executable' }));
assert.deepEqual(testObject.configurationModel.contents, { 'FolderSettingsModelParser': { 'resource': 'resource' } });
const expected = Object.create(null);
expected['FolderSettingsModelParser'] = Object.create(null);
expected['FolderSettingsModelParser']['resource'] = 'resource';
assert.deepStrictEqual(testObject.configurationModel.contents, expected);
});
test('parse resource and resource language settings', () => {
@@ -69,7 +76,11 @@ suite('FolderSettingsModelParser', () => {
testObject.parseContent(JSON.stringify({ '[json]': { 'FolderSettingsModelParser.window': 'window', 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.resourceLanguage': 'resourceLanguage', 'FolderSettingsModelParser.application': 'application', 'FolderSettingsModelParser.machine': 'executable' } }));
assert.deepEqual(testObject.configurationModel.overrides, [{ 'contents': { 'FolderSettingsModelParser': { 'resource': 'resource', 'resourceLanguage': 'resourceLanguage' } }, 'identifiers': ['json'], 'keys': ['FolderSettingsModelParser.resource', 'FolderSettingsModelParser.resourceLanguage'] }]);
const expected = Object.create(null);
expected['FolderSettingsModelParser'] = Object.create(null);
expected['FolderSettingsModelParser']['resource'] = 'resource';
expected['FolderSettingsModelParser']['resourceLanguage'] = 'resourceLanguage';
assert.deepStrictEqual(testObject.configurationModel.overrides, [{ 'contents': expected, 'identifiers': ['json'], 'keys': ['FolderSettingsModelParser.resource', 'FolderSettingsModelParser.resourceLanguage'] }]);
});
test('reprocess folder settings excludes application and machine setting', () => {
@@ -77,7 +88,11 @@ suite('FolderSettingsModelParser', () => {
testObject.parseContent(JSON.stringify({ 'FolderSettingsModelParser.resource': 'resource', 'FolderSettingsModelParser.anotherApplicationSetting': 'executable' }));
assert.deepEqual(testObject.configurationModel.contents, { 'FolderSettingsModelParser': { 'resource': 'resource', 'anotherApplicationSetting': 'executable' } });
let expected = Object.create(null);
expected['FolderSettingsModelParser'] = Object.create(null);
expected['FolderSettingsModelParser']['resource'] = 'resource';
expected['FolderSettingsModelParser']['anotherApplicationSetting'] = 'executable';
assert.deepStrictEqual(testObject.configurationModel.contents, expected);
const configurationRegistry = Registry.as<IConfigurationRegistry>(ConfigurationExtensions.Configuration);
configurationRegistry.registerConfiguration({
@@ -98,7 +113,11 @@ suite('FolderSettingsModelParser', () => {
});
testObject.parse();
assert.deepEqual(testObject.configurationModel.contents, { 'FolderSettingsModelParser': { 'resource': 'resource' } });
expected = Object.create(null);
expected['FolderSettingsModelParser'] = Object.create(null);
expected['FolderSettingsModelParser']['resource'] = 'resource';
assert.deepStrictEqual(testObject.configurationModel.contents, expected);
});
});
@@ -110,7 +129,11 @@ suite('StandaloneConfigurationModelParser', () => {
testObject.parseContent(JSON.stringify({ 'version': '1.1.1', 'tasks': [] }));
assert.deepEqual(testObject.configurationModel.contents, { 'tasks': { 'version': '1.1.1', 'tasks': [] } });
const expected = Object.create(null);
expected['tasks'] = Object.create(null);
expected['tasks']['version'] = '1.1.1';
expected['tasks']['tasks'] = [];
assert.deepStrictEqual(testObject.configurationModel.contents, expected);
});
});
@@ -55,52 +55,52 @@ suite('Editor - Range decorations', () => {
});
test('highlight range for the resource if it is an active editor', function () {
let range: IRange = { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 };
const range: IRange = new Range(1, 1, 1, 1);
testObject.highlightRange({ resource: model.uri, range });
let actuals = rangeHighlightDecorations(model);
const actuals = rangeHighlightDecorations(model);
assert.deepEqual([range], actuals);
assert.deepStrictEqual(actuals, [range]);
});
test('remove highlight range', function () {
testObject.highlightRange({ resource: model.uri, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } });
testObject.removeHighlightRange();
let actuals = rangeHighlightDecorations(model);
const actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual([], actuals);
assert.deepStrictEqual(actuals, []);
});
test('highlight range for the resource removes previous highlight', function () {
testObject.highlightRange({ resource: model.uri, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } });
let range: IRange = { startLineNumber: 2, startColumn: 2, endLineNumber: 4, endColumn: 3 };
const range: IRange = new Range(2, 2, 4, 3);
testObject.highlightRange({ resource: model.uri, range });
let actuals = rangeHighlightDecorations(model);
const actuals = rangeHighlightDecorations(model);
assert.deepEqual([range], actuals);
assert.deepStrictEqual(actuals, [range]);
});
test('highlight range for a new resource removes highlight of previous resource', function () {
testObject.highlightRange({ resource: model.uri, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } });
let anotherModel = prepareActiveEditor('anotherModel');
let range: IRange = { startLineNumber: 2, startColumn: 2, endLineNumber: 4, endColumn: 3 };
const anotherModel = prepareActiveEditor('anotherModel');
const range: IRange = new Range(2, 2, 4, 3);
testObject.highlightRange({ resource: anotherModel.uri, range });
let actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual([], actuals);
assert.deepStrictEqual(actuals, []);
actuals = rangeHighlightDecorations(anotherModel);
assert.deepEqual([range], actuals);
assert.deepStrictEqual(actuals, [range]);
});
test('highlight is removed on model change', function () {
testObject.highlightRange({ resource: model.uri, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } });
prepareActiveEditor('anotherModel');
let actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual([], actuals);
const actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual(actuals, []);
});
test('highlight is removed on cursor position change', function () {
@@ -109,27 +109,27 @@ suite('Editor - Range decorations', () => {
position: new Position(2, 1)
});
let actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual([], actuals);
const actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual(actuals, []);
});
test('range is not highlight if not active editor', function () {
let model = aModel(URI.file('some model'));
const model = aModel(URI.file('some model'));
testObject.highlightRange({ resource: model.uri, range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 } });
let actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual([], actuals);
const actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual(actuals, []);
});
test('previous highlight is not removed if not active editor', function () {
let range: IRange = { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 };
const range = new Range(1, 1, 1, 1);
testObject.highlightRange({ resource: model.uri, range });
let model1 = aModel(URI.file('some model'));
const model1 = aModel(URI.file('some model'));
testObject.highlightRange({ resource: model1.uri, range: { startLineNumber: 2, startColumn: 1, endLineNumber: 2, endColumn: 1 } });
let actuals = rangeHighlightDecorations(model);
assert.deepEqual([range], actuals);
const actuals = rangeHighlightDecorations(model);
assert.deepStrictEqual(actuals, [range]);
});
function prepareActiveEditor(resource: string): TextModel {