Refactor board.js to Vue single file component

Merged Nicolò Maria Mezzopera requested to merge jestodous-refactor-board-to-sfc into master

What does this MR do?

This MR is a refactor spun up from the jestodous work, in particular the issue #27258 (closed)

This MR includes:

  • Adds a new feature flag to conditionally load the new board_colum.vue SFC component
  • Adds a new component board_column which is a refactor of app/assets/javascripts/boards/components/board.js from HAML to SFC
  • Adds a new jest test for the new board_column component
  • Adds a new ee/board_column component that extends is CE version
  • Add some new props to the HAML loading the vue components to compensate for the lack of render_if

Note

This work started in a jestodous pair programming session that included: @pslaughter @jboyson @cwoolley-gitlab @leipert and @nmezzopera it was then continued by @leipert and finalized in another pair programming session with @leipert @nmezzopera and @markrian

Pinning Tests

Here is the log of the recently ran pinning test for bfe73017 on 2020-03-27T0600Z

pin.log

To run the pinning tests locally, checkout this MR's branch and run locally:

git revert --no-commit $(git log -1 --grep="Remove pinning tests for boards" --pretty=format:"%H") && ./scripts/pin_boards.sh

This script:

  • Reverts the commit which removes the pinning test
  • Runs the pinning test

The test oracles can be updated by:

  • Start an interactive rebase and editing the Setup pinning tests commit
  • Make any changes to the boards_pin_spec.rb file or the pinning scripts
  • Run PIN_TYPE=oracle ./scripts/pin_boards.sh to recreate the oracle pins

Screenshots

No Visual changes

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

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
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team
Edited by Lukas 'Eipi' Eipert