Skip to content

Set up test fixtures for Rich Text Editor

Chad Woolley requested to merge 1225-rich-text-fixtures-setup into main

What does this MR do?

Add framework to CI to call GitLab Markdown API to generate Golden Master/Characterization Test fixtures, which will be committed to git and used in the Rich Text Editor unit tests.

These fixtures, and specifically committing them, serve several multiple purposes:

  • To be used as a source of truth for GitLab-flavored-markdown, to ensure that the Rich Text Editor always renders markdown identically to the backend.
  • Committing them means that the Rich Text Editor unit tests can run fast and with no need for network access.
  • Since we commit, they also serve the Golden Master/Characterization Test goal to "help developers verify that the modifications made to a reference version of a software system did not modify its behavior in unwanted or undesirable ways".
    • In practice, this means that any changes in how Markdown is rendered by the backend will be clearly visible in the git history.
    • This allows us to look at each change, and determine whether it was:
      1. Intentional (and thus needs to be accounted for in how the Rich Text Editor renders the same Markdown), OR
      2. Unintentional (meaning it was a regression in the backend, and needs to be fixed there).

See discussion in document

Scope

This MR is simply a first iteration of proving we can call the API and generate a file.

Follow on MRs will add support for generating fixtures and committing the files to git to the CI pipeline config.

Does this MR meet the acceptance criteria?

Conformity

  • Code review guidelines.
  • GitLab UI's contributing guidlines.
  • [-] If it changes a Pajamas-compliant component's look & feel, the MR has been reviewed by a UX designer.
  • [-] If it changes GitLab UI's documentation guidelines, the MR has been reviewed by a Technical Writer.
  • [-] If the MR changes a component's API, integration MR(s) have been opened in the following projects to ensure that the @gitlab/ui package can be upgraded quickly after the changes are released:
  • Added the ~"component:*" label(s) if applicable.

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Accessibility

If this MR adds or modifies a component, take a few moments to review the following:

  • [-] All actions and functionality can be done with a keyboard.
  • [-] Links, buttons, and controls have a visible focus state.
  • [-] All content is presented in text or with a text equivalent. For example, alt text for SVG, or aria-label for icons that have meaning or perform actions.
  • [-] Changes in a component’s state are announced by a screen reader. For example, changing aria-expanded="false" to aria-expanded="true" when an accordion is expanded.
  • [-] Color combinations have sufficient contrast.

Relates #1225 (moved)

Edited by Chad Woolley

Merge request reports