From 54a3dbb9a0c0f39c425c22201f7851992033c81b Mon Sep 17 00:00:00 2001 From: Richard Hansen Date: Sun, 24 Jan 2021 00:56:11 -0500 Subject: [PATCH] lint: Fix some straightforward ESLint errors --- src/node/hooks/express/openapi.js | 6 +- tests/backend/specs/api/characterEncoding.js | 2 + tests/backend/specs/api/importexport.js | 134 +++++++++---------- tests/backend/specs/contentcollector.js | 114 ++++++++-------- 4 files changed, 131 insertions(+), 125 deletions(-) diff --git a/src/node/hooks/express/openapi.js b/src/node/hooks/express/openapi.js index 34491338..d7059896 100644 --- a/src/node/hooks/express/openapi.js +++ b/src/node/hooks/express/openapi.js @@ -391,9 +391,9 @@ const defaultResponseRefs = { // convert to a dictionary of operation objects const operations = {}; -for (const resource in resources) { - for (const action in resources[resource]) { - const {operationId, responseSchema, ...operation} = resources[resource][action]; +for (const [resource, actions] of Object.entries(resources)) { + for (const [action, spec] of Object.entries(actions)) { + const {operationId, responseSchema, ...operation} = spec; // add response objects const responses = {...defaultResponseRefs}; diff --git a/tests/backend/specs/api/characterEncoding.js b/tests/backend/specs/api/characterEncoding.js index e17e90fe..94c22307 100644 --- a/tests/backend/specs/api/characterEncoding.js +++ b/tests/backend/specs/api/characterEncoding.js @@ -1,3 +1,5 @@ +'use strict'; + /* * This file is copied & modified from /tests/backend/specs/api/pad.js * diff --git a/tests/backend/specs/api/importexport.js b/tests/backend/specs/api/importexport.js index b7b45b26..fe61dfa1 100644 --- a/tests/backend/specs/api/importexport.js +++ b/tests/backend/specs/api/importexport.js @@ -6,13 +6,11 @@ * TODO: unify those two files, and merge in a single one. */ -/* eslint-disable max-len */ - const common = require('../../common'); -const supertest = require(`${__dirname}/../../../../src/node_modules/supertest`); -const settings = require(`${__dirname}/../../../../tests/container/loadSettings.js`).loadSettings(); -const api = supertest(`http://${settings.ip}:${settings.port}`); +const settings = require('../../../container/loadSettings.js').loadSettings(); +const supertest = require('ep_etherpad-lite/node_modules/supertest'); +const api = supertest(`http://${settings.ip}:${settings.port}`); const apiKey = common.apiKey; const apiVersion = 1; @@ -47,16 +45,16 @@ const testImports = { }, /* - "prefixcorrectlinenumber when introduced none list item - currently not supported see #3450":{ + "prefixcorrectlinenumber when introduced none list item - currently not supported see #3450": { input: '
  1. should be 1
  2. test
  3. should be 2
', expectedHTML: '
  1. should be 1
  2. test
  3. should be 2

', - expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n' + expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n', } , - "newlinesshouldntresetlinenumber #2194":{ + "newlinesshouldntresetlinenumber #2194": { input: '
  1. should be 1
  2. test
  3. should be 2
', expectedHTML: '
  1. should be 1
  2. test
  3. should be 2

', - expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n' + expectedText: '\t1. should be 1\n\ttest\n\t2. should be 2\n\n', } */ 'ignoreAnyTagsOutsideBody': { @@ -69,88 +67,88 @@ const testImports = { description: 'Indented lists are represented with tabs and without bullets', input: '', expectedHTML: '
', - expectedText: '\tindent\n\tindent\n\n' + expectedText: '\tindent\n\tindent\n\n', }, - lineWithMultipleSpaces: { + 'lineWithMultipleSpaces': { description: 'Multiple spaces should be collapsed', input: 'Text with more than one space.
', expectedHTML: 'Text with more than one space.

', - expectedText: 'Text with more than one space.\n\n' + expectedText: 'Text with more than one space.\n\n', }, - lineWithMultipleNonBreakingAndNormalSpaces: { + 'lineWithMultipleNonBreakingAndNormalSpaces': { // XXX the HTML between "than" and "one" looks strange description: 'non-breaking space should be preserved, but can be replaced when it', input: 'Text with  more   than  one space.
', expectedHTML: 'Text with  more   than  one space.

', - expectedText: 'Text with more than one space.\n\n' + expectedText: 'Text with more than one space.\n\n', }, - multiplenbsp: { + 'multiplenbsp': { description: 'Multiple non-breaking space should be preserved', input: '  
', expectedHTML: '  

', - expectedText: ' \n\n' + expectedText: ' \n\n', }, - multipleNonBreakingSpaceBetweenWords: { + 'multipleNonBreakingSpaceBetweenWords': { description: 'A normal space is always inserted before a word', input: '  word1  word2   word3
', expectedHTML: '  word1  word2   word3

', - expectedText: ' word1 word2 word3\n\n' + expectedText: ' word1 word2 word3\n\n', }, - nonBreakingSpacePreceededBySpaceBetweenWords: { + 'nonBreakingSpacePreceededBySpaceBetweenWords': { description: 'A non-breaking space preceeded by a normal space', input: '  word1  word2  word3
', expectedHTML: ' word1  word2  word3

', - expectedText: ' word1 word2 word3\n\n' + expectedText: ' word1 word2 word3\n\n', }, - nonBreakingSpaceFollowededBySpaceBetweenWords: { + 'nonBreakingSpaceFollowededBySpaceBetweenWords': { description: 'A non-breaking space followed by a normal space', input: '  word1  word2  word3
', expectedHTML: '  word1  word2  word3

', - expectedText: ' word1 word2 word3\n\n' + expectedText: ' word1 word2 word3\n\n', }, - spacesAfterNewline: { + 'spacesAfterNewline': { description: 'Collapse spaces that follow a newline', - input:'something
something
', + input: 'something
something
', expectedHTML: 'something
something

', - expectedText: 'something\nsomething\n\n' + expectedText: 'something\nsomething\n\n', }, - spacesAfterNewlineP: { + 'spacesAfterNewlineP': { description: 'Collapse spaces that follow a paragraph', - input:'something

something
', + input: 'something

something
', expectedHTML: 'something

something

', - expectedText: 'something\n\nsomething\n\n' + expectedText: 'something\n\nsomething\n\n', }, - spacesAtEndOfLine: { + 'spacesAtEndOfLine': { description: 'Collapse spaces that preceed/follow a newline', - input:'something
something
', + input: 'something
something
', expectedHTML: 'something
something

', - expectedText: 'something\nsomething\n\n' + expectedText: 'something\nsomething\n\n', }, - spacesAtEndOfLineP: { + 'spacesAtEndOfLineP': { description: 'Collapse spaces that preceed/follow a paragraph', - input:'something

something
', + input: 'something

something
', expectedHTML: 'something

something

', - expectedText: 'something\n\nsomething\n\n' + expectedText: 'something\n\nsomething\n\n', }, - nonBreakingSpacesAfterNewlines: { + 'nonBreakingSpacesAfterNewlines': { description: 'Don\'t collapse non-breaking spaces that follow a newline', - input:'something
   something
', + input: 'something
   something
', expectedHTML: 'something
   something

', - expectedText: 'something\n something\n\n' + expectedText: 'something\n something\n\n', }, - nonBreakingSpacesAfterNewlinesP: { + 'nonBreakingSpacesAfterNewlinesP': { description: 'Don\'t collapse non-breaking spaces that follow a paragraph', - input:'something

   something
', + input: 'something

   something
', expectedHTML: 'something

   something

', - expectedText: 'something\n\n something\n\n' + expectedText: 'something\n\n something\n\n', }, - collapseSpacesInsideElements: { + 'collapseSpacesInsideElements': { description: 'Preserve only one space when multiple are present', input: 'Need more space s !
', expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, - collapseSpacesAcrossNewlines: { + 'collapseSpacesAcrossNewlines': { description: 'Newlines and multiple spaces across newlines should be collapsed', input: ` Need @@ -159,29 +157,29 @@ const testImports = { s !
`, expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, - multipleNewLinesAtBeginning: { + 'multipleNewLinesAtBeginning': { description: 'Multiple new lines and paragraphs at the beginning should be preserved', input: '

first line

second line
', expectedHTML: '



first line

second line

', - expectedText: '\n\n\n\nfirst line\n\nsecond line\n\n' + expectedText: '\n\n\n\nfirst line\n\nsecond line\n\n', }, - multiLineParagraph:{ - description: "A paragraph with multiple lines should not loose spaces when lines are combined", - input:` + 'multiLineParagraph': { + description: 'A paragraph with multiple lines should not loose spaces when lines are combined', + input: `

а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь

`, expectedHTML: 'а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь

', - expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь\n\n' + expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь\n\n', }, - multiLineParagraphWithPre:{ - //XXX why is there   before "in"? - description: "lines in preformatted text should be kept intact", - input:` + 'multiLineParagraphWithPre': { + // XXX why is there   before "in"? + description: 'lines in preformatted text should be kept intact', + input: `

а б в г ґ д е є ж з и і ї й к л м н о

multiple
    lines
@@ -191,40 +189,40 @@ const testImports = {
 ь

`, expectedHTML: 'а б в г ґ д е є ж з и і ї й к л м н о
multiple
   lines
 in
      pre

п р с т у ф х ц ч ш щ ю я ь

', - expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о\nmultiple\n lines\n in\n pre\n\nп р с т у ф х ц ч ш щ ю я ь\n\n' + expectedText: 'а б в г ґ д е є ж з и і ї й к л м н о\nmultiple\n lines\n in\n pre\n\nп р с т у ф х ц ч ш щ ю я ь\n\n', }, - preIntroducesASpace: { - description: "pre should be on a new line not preceeded by a space", - input:`

+ 'preIntroducesASpace': { + description: 'pre should be on a new line not preceeded by a space', + input: `

1

preline
 

`, expectedHTML: '1
preline


', - expectedText: '1\npreline\n\n\n' + expectedText: '1\npreline\n\n\n', }, - dontDeleteSpaceInsideElements: { + 'dontDeleteSpaceInsideElements': { description: 'Preserve spaces inside elements', input: 'Need more space s !
', expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, - dontDeleteSpaceOutsideElements: { + 'dontDeleteSpaceOutsideElements': { description: 'Preserve spaces outside elements', input: 'Need more space s !
', expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, - dontDeleteSpaceAtEndOfElement: { + 'dontDeleteSpaceAtEndOfElement': { description: 'Preserve spaces at the end of an element', input: 'Need more space s !
', expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, - dontDeleteSpaceAtBeginOfElements: { + 'dontDeleteSpaceAtBeginOfElements': { description: 'Preserve spaces at the start of an element', input: 'Need more space s !
', expectedHTML: 'Need more space s !

', - expectedText: 'Need more space s !\n\n' + expectedText: 'Need more space s !\n\n', }, }; @@ -315,7 +313,7 @@ describe(__filename, function () { function endPoint(point, version) { version = version || apiVersion; return `/api/${version}/${point}?apikey=${apiKey}`; -}; +} function makeid() { let text = ''; diff --git a/tests/backend/specs/contentcollector.js b/tests/backend/specs/contentcollector.js index c8590491..83417966 100644 --- a/tests/backend/specs/contentcollector.js +++ b/tests/backend/specs/contentcollector.js @@ -1,18 +1,17 @@ 'use strict'; -/* eslint-disable max-len */ /* - * While importexport tests target the `setHTML` API endpoint, which is nearly identical to what happens - * when a user manually imports a document via the UI, the contentcollector tests here don't use rehype to process - * the document. Rehype removes spaces and newĺines were applicable, so the expected results here can - * differ from importexport.js. + * While importexport tests target the `setHTML` API endpoint, which is nearly identical to what + * happens when a user manually imports a document via the UI, the contentcollector tests here don't + * use rehype to process the document. Rehype removes spaces and newĺines were applicable, so the + * expected results here can differ from importexport.js. * * If you add tests here, please also add them to importexport.js */ -const contentcollector = require('../../../src/static/js/contentcollector'); -const AttributePool = require('../../../src/static/js/AttributePool'); -const cheerio = require('../../../src/node_modules/cheerio'); +const AttributePool = require('ep_etherpad-lite/static/js/AttributePool'); +const cheerio = require('ep_etherpad-lite/node_modules/cheerio'); +const contentcollector = require('ep_etherpad-lite/static/js/contentcollector'); const tests = { nestedLi: { @@ -124,74 +123,74 @@ const tests = { lineWithMultipleSpaces: { description: 'Multiple spaces should be preserved', html: 'Text with more than one space.
', - expectedLineAttribs: [ '+10' ], - expectedText: ['Text with more than one space.'] + expectedLineAttribs: ['+10'], + expectedText: ['Text with more than one space.'], }, lineWithMultipleNonBreakingAndNormalSpaces: { description: 'non-breaking and normal space should be preserved', html: 'Text with  more   than  one space.
', - expectedLineAttribs: [ '+10' ], - expectedText: ['Text with more than one space.'] + expectedLineAttribs: ['+10'], + expectedText: ['Text with more than one space.'], }, multiplenbsp: { description: 'Multiple nbsp should be preserved', html: '  
', - expectedLineAttribs: [ '+2' ], - expectedText: [' '] + expectedLineAttribs: ['+2'], + expectedText: [' '], }, multipleNonBreakingSpaceBetweenWords: { description: 'Multiple nbsp between words ', html: '  word1  word2   word3
', - expectedLineAttribs: [ '+m' ], - expectedText: [' word1 word2 word3'] + expectedLineAttribs: ['+m'], + expectedText: [' word1 word2 word3'], }, nonBreakingSpacePreceededBySpaceBetweenWords: { description: 'A non-breaking space preceeded by a normal space', html: '  word1  word2  word3
', - expectedLineAttribs: [ '+l' ], - expectedText: [' word1 word2 word3'] + expectedLineAttribs: ['+l'], + expectedText: [' word1 word2 word3'], }, nonBreakingSpaceFollowededBySpaceBetweenWords: { description: 'A non-breaking space followed by a normal space', html: '  word1  word2  word3
', - expectedLineAttribs: [ '+l' ], - expectedText: [' word1 word2 word3'] + expectedLineAttribs: ['+l'], + expectedText: [' word1 word2 word3'], }, spacesAfterNewline: { description: 'Don\'t collapse spaces that follow a newline', - html:'something
something
', + html: 'something
something
', expectedLineAttribs: ['+9', '+m'], - expectedText: ['something', ' something'] + expectedText: ['something', ' something'], }, spacesAfterNewlineP: { description: 'Don\'t collapse spaces that follow a empty paragraph', - html:'something

something
', + html: 'something

something
', expectedLineAttribs: ['+9', '', '+m'], - expectedText: ['something', '', ' something'] + expectedText: ['something', '', ' something'], }, spacesAtEndOfLine: { description: 'Don\'t collapse spaces that preceed/follow a newline', - html:'something
something
', + html: 'something
something
', expectedLineAttribs: ['+l', '+m'], - expectedText: ['something ', ' something'] + expectedText: ['something ', ' something'], }, spacesAtEndOfLineP: { description: 'Don\'t collapse spaces that preceed/follow a empty paragraph', - html:'something

something
', + html: 'something

something
', expectedLineAttribs: ['+l', '', '+m'], - expectedText: ['something ', '', ' something'] + expectedText: ['something ', '', ' something'], }, nonBreakingSpacesAfterNewlines: { description: 'Don\'t collapse non-breaking spaces that follow a newline', - html:'something
   something
', + html: 'something
   something
', expectedLineAttribs: ['+9', '+c'], - expectedText: ['something', ' something'] + expectedText: ['something', ' something'], }, nonBreakingSpacesAfterNewlinesP: { description: 'Don\'t collapse non-breaking spaces that follow a paragraph', - html:'something

   something
', + html: 'something

   something
', expectedLineAttribs: ['+9', '', '+c'], - expectedText: ['something', '', ' something'] + expectedText: ['something', '', ' something'], }, preserveSpacesInsideElements: { description: 'Preserve all spaces when multiple are present', @@ -207,27 +206,27 @@ const tests = { space s !
`, - expectedLineAttribs: [ '+19*0+4+b' ], - expectedText: [ 'Need more space s !' ] + expectedLineAttribs: ['+19*0+4+b'], + expectedText: ['Need more space s !'], }, multipleNewLinesAtBeginning: { description: 'Multiple new lines at the beginning should be preserved', html: '

first line

second line
', expectedLineAttribs: ['', '', '', '', '+a', '', '+b'], - expectedText: [ '', '', '', '', 'first line', '', 'second line'] + expectedText: ['', '', '', '', 'first line', '', 'second line'], }, - multiLineParagraph:{ - description: "A paragraph with multiple lines should not loose spaces when lines are combined", - html:`

+ multiLineParagraph: { + description: 'A paragraph with multiple lines should not loose spaces when lines are combined', + html: `

а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь

`, - expectedLineAttribs: [ '+1t' ], - expectedText: ["а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь"] + expectedLineAttribs: ['+1t'], + expectedText: ['а б в г ґ д е є ж з и і ї й к л м н о п р с т у ф х ц ч ш щ ю я ь'], }, - multiLineParagraphWithPre:{ - description: "lines in preformatted text should be kept intact", - html:`

+ multiLineParagraphWithPre: { + description: 'lines in preformatted text should be kept intact', + html: `

а б в г ґ д е є ж з и і ї й к л м н о

multiple
 lines
 in
@@ -235,41 +234,48 @@ pre
 

п р с т у ф х ц ч ш щ ю я ь

`, - expectedLineAttribs: [ '+11', '+8', '+5', '+2', '+3', '+r' ], - expectedText: ['а б в г ґ д е є ж з и і ї й к л м н о', 'multiple', 'lines', 'in', 'pre', 'п р с т у ф х ц ч ш щ ю я ь'] + expectedLineAttribs: ['+11', '+8', '+5', '+2', '+3', '+r'], + expectedText: [ + 'а б в г ґ д е є ж з и і ї й к л м н о', + 'multiple', + 'lines', + 'in', + 'pre', + 'п р с т у ф х ц ч ш щ ю я ь', + ], }, preIntroducesASpace: { - description: "pre should be on a new line not preceeded by a space", - html:`

+ description: 'pre should be on a new line not preceeded by a space', + html: `

1

preline
 

`, - expectedLineAttribs: [ '+6', '+7' ], - expectedText: [' 1 ', 'preline'] + expectedLineAttribs: ['+6', '+7'], + expectedText: [' 1 ', 'preline'], }, dontDeleteSpaceInsideElements: { description: 'Preserve spaces on the beginning and end of a element', html: 'Need more space s !
', expectedLineAttribs: ['+f*0+3+1'], - expectedText: ['Need more space s !'] + expectedText: ['Need more space s !'], }, dontDeleteSpaceOutsideElements: { description: 'Preserve spaces outside elements', html: 'Need more space s !
', expectedLineAttribs: ['+g*0+1+2'], - expectedText: ['Need more space s !'] + expectedText: ['Need more space s !'], }, dontDeleteSpaceAtEndOfElement: { description: 'Preserve spaces at the end of an element', html: 'Need more space s !
', expectedLineAttribs: ['+g*0+2+1'], - expectedText: ['Need more space s !'] + expectedText: ['Need more space s !'], }, dontDeleteSpaceAtBeginOfElements: { description: 'Preserve spaces at the start of an element', html: 'Need more space s !
', expectedLineAttribs: ['+f*0+2+2'], - expectedText: ['Need more space s !'] + expectedText: ['Need more space s !'], }, }; @@ -325,7 +331,7 @@ describe(__filename, function () { function arraysEqual(a, b) { if (a === b) return true; if (a == null || b == null) return false; - if (a.length != b.length) return false; + if (a.length !== b.length) return false; // If you don't care about the order of the elements inside // the array, you should sort both arrays here.