Set up test fixtures for Rich Text Editor
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:
- Intentional (and thus needs to be accounted for in how the Rich Text Editor renders the same Markdown), OR
- 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:- [-] GitLab: mr_url
- [-] CustomersDot: mr_url
- [-] Status Page: mr_url
-
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"
toaria-expanded="true"
when an accordion is expanded. - [-] Color combinations have sufficient contrast.
Relates #1225 (moved)