telusdigital/nightwatch-seo

View on GitHub

Showing 17 of 17 total issues

Function assertion has 34 lines of code (exceeds 25 allowed). Consider refactoring.
Open

module.exports.assertion = function (context, options) {
  options = Object.assign({ meta: true, titleRegExp: /.* - TELUS.com/ }, options)

  if (!(options.titleRegExp instanceof RegExp)) throw new TypeError('`titleRegExp` should be type RegExp')

Severity: Minor
Found in assertions/seo.js - About 1 hr to fix

    Function command has 26 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

      this.command = (done) => {
        const assert = this.api.assert
    
        this.api.elements('tag name', `${context} h1`, (result) => {
          assert.ok(result.value.length <= 1, '<h1/> should be unique and found only once per page')
    Severity: Minor
    Found in assertions/seo.js - About 1 hr to fix

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

            this.api.elements('tag name', 'title', (result) => {
              assert.ok(result.value.length === 1, '<title/> should exists and be unique')
            })
      Severity: Minor
      Found in assertions/seo.js and 1 other location - About 35 mins to fix
      assertions/seo.js on lines 36..38

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 47.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Similar blocks of code found in 2 locations. Consider refactoring.
      Open

            this.api.elements('css selector', 'meta[name=description]', (result) => {
              assert.ok(result.value.length === 1, '<meta name="description"> should exists and be unique')
            })
      Severity: Minor
      Found in assertions/seo.js and 1 other location - About 35 mins to fix
      assertions/seo.js on lines 26..28

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 47.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      Line length
      Open

        - [ ] element `href` attribute should exclude provincial parameters, tracking codes and any other extra parameters & query strings
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Inline HTML
      Open

      # Nightwatch SEO [![version][npm-version]][npm-url] [![License][license-image]][license-url]
      Severity: Info
      Found in README.md by markdownlint

      MD033 - Inline HTML

      Tags: html

      Aliases: no-inline-html

      This rule is triggered whenever raw HTML is used in a markdown document:

      Inline HTML header

      To fix this, use 'pure' markdown instead of including raw HTML:

      # Markdown header

      Rationale: Raw HTML is allowed in markdown, but this rule is included for those who want their documents to only include "pure" markdown, or for those who are rendering markdown documents in something other than HTML.

      Line length
      Open

      > Nightwatch.js utility assertion for SEO testing in accordance to TELUS digital [SEO rules](#seo-rules)
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Line length
      Open

      This is a work in progress, checklist below indicates what has been implemented to date:
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Line length
      Open

      **`titleRegExp`** | `RegExp` | `/.* - TELUS.com/` | `✖️`      | configurable regex for <title> assertions
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Spaces inside code span elements
      Open

        - [x] element should conform to pattern (` - TELUS.com`)
      Severity: Info
      Found in README.md by markdownlint

      MD038 - Spaces inside code span elements

      Tags: whitespace, code

      Aliases: no-space-in-code

      This rule is triggered on code span elements that have spaces right inside the backticks:

      ` some text `
      
      `some text `
      
      ` some text`

      To fix this, remove the spaces inside the codespan markers:

      `some text`

      Header levels should only increment by one level at a time
      Open

      ###### Layout
      Severity: Info
      Found in README.md by markdownlint

      MD001 - Header levels should only increment by one level at a time

      Tags: headers

      Aliases: header-increment

      This rule is triggered when you skip header levels in a markdown document, for example:

      # Header 1
      
      ### Header 3
      
      We skipped out a 2nd level header in this document

      When using multiple header levels, nested headers should increase by only one level at a time:

      # Header 1
      
      ## Header 2
      
      ### Header 3
      
      #### Header 4
      
      ## Another Header 2
      
      ### Another Header 3

      Spaces inside code span elements
      Open

        - [ ] element should use a spaced dash (` - `) to separate sections
      Severity: Info
      Found in README.md by markdownlint

      MD038 - Spaces inside code span elements

      Tags: whitespace, code

      Aliases: no-space-in-code

      This rule is triggered on code span elements that have spaces right inside the backticks:

      ` some text `
      
      `some text `
      
      ` some text`

      To fix this, remove the spaces inside the codespan markers:

      `some text`

      Line length
      Open

      **`context`** | `String` | `'html'` | `✖️`      | A CSS selector that selects the portion(s) of the document that must be analyzed
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Line length
      Open

        - [ ] element `content` attribute should exclude provincial parameters, tracking codes and any other extra parameters & query strings
      Severity: Info
      Found in README.md by markdownlint

      MD013 - Line length

      Tags: line_length

      Aliases: line-length Parameters: linelength, codeblocks, tables (number; default 80, boolean; default true)

      This rule is triggered when there are lines that are longer than the configured line length (default: 80 characters). To fix this, split the line up into multiple lines.

      This rule has an exception where there is no whitespace beyond the configured line length. This allows you to still include items such as long URLs without being forced to break them in the middle.

      You also have the option to exclude this rule for code blocks and tables. To do this, set the code_blocks and/or tables parameters to false.

      Code blocks are included in this rule by default since it is often a requirement for document readability, and tentatively compatible with code rules. Still, some languages do not lend themselves to short lines.

      Blank line inside blockquote
      Open

      
      
      Severity: Info
      Found in README.md by markdownlint

      MD028 - Blank line inside blockquote

      Tags: blockquote, whitespace

      Aliases: no-blanks-blockquote

      This rule is triggered when two blockquote blocks are separated by nothing except for a blank line:

      > This is a blockquote
      > which is immediately followed by
      
      > this blockquote. Unfortunately
      > In some parsers, these are treated as the same blockquote.

      To fix this, ensure that any blockquotes that are right next to each other have some text in between:

      > This is a blockquote.
      
      And Jimmy also said:
      
      > This too is a blockquote.

      Alternatively, if they are supposed to be the same quote, then add the blockquote symbol at the beginning of the blank line:

      > This is a blockquote.
      >
      > This is the same blockquote.

      Rationale: Some markdown parsers will treat two blockquotes separated by one or more blank lines as the same blockquote, while others will treat them as separate blockquotes.

      TODO found
      Open

              // TODO: what's the length for French & other languages?
      Severity: Minor
      Found in assertions/seo.js by fixme

      TODO found
      Open

              // TODO: what's the length for French & other languages?
      Severity: Minor
      Found in assertions/seo.js by fixme
      Severity
      Category
      Status
      Source
      Language