• Rémy Coutable's avatar
    Merge branch 'clean-up-issue_spec.js' into 'master' · 2672f44e
    Rémy Coutable authored
    Replace static fixture by generated one in issue_spec.js
    
    ## What does this MR do?
    
    - clean up `issue_spec.js`
    - introduce an alternative approach to #19445
      - rename `rake teaspoon` to `rake teaspoon:tests`
      - introduce `rake teaspoon:fixtures` which generates fixtures using RSpec
      - introduce `rake teaspoon` which runs `rake teaspoon:fixtures` and `rake teaspoon:tests`
    
    ## Why was this MR needed?
    
    - many duplications
    - missing existence checks
    - missing conditions
    - static fixtures don't match real views
    
    ## Reasoning
    
    I want to explain some of my decisions here, so that they stay visible for future discussions.
    
    ### Why not HAML?
    
    - same number of HAML templates as number of fixtures (many input files)
    - embedded logic less readable
    - can not be rendered by JavaScript (because of inline Ruby)
    
    ### Why RSpec?
    
    - real controllers for fixtures
    - spys available for mocking
    - easily report failed fixture generations
    
    ### Why not magic_lamp? (#19445)
    
    - introduces another dependency/tool
    - needs to run a server concurrently to teaspoon
    - makes it harder to use a JavaScript test runner
    - static HTML files serve faster
    
    See merge request !6059
    2672f44e
To find the state of this project's repository at the time of any of these versions, check out the tags.
CHANGELOG.md 141 KB