GithubHelp home page GithubHelp logo

mastercarl / rails-exercise-16 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hpi-swt2-exercise/rails-exercise-16

0.0 0.0 0.0 133 KB

License: MIT License

Ruby 75.26% JavaScript 1.88% CSS 1.85% HTML 20.04% Python 0.96%

rails-exercise-16's People

Contributors

derari avatar mastercarl avatar swt2public avatar

Watchers

 avatar  avatar

rails-exercise-16's Issues

Paper should have and belong to many authors

Given a paper
Then it should have an empty list of authors

Got ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: authors.paper_id: SELECT "authors".* FROM "authors" WHERE "authors"."paper_id" = ?

Paper page should list the authors

Given a paper with an author
When a user visits the paper page
Then it should show the author's name

Expected to find text "alan turing" in "title: computing machinery and intelligence venue: mind 49: 433-460 year: 1950 edit"

New author page should show validation errors

Given users visit the new author page
And fill in only first name and homepage
When they click submit
Then the page should report that last name can't be blank

Expected to find text "last name can't be blank" in "new author first name last name homepage"

Paper should have and belong to many authors

Given a paper
Then it should have an empty list of authors

Got ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: authors.paper_id: SELECT "authors".* FROM "authors" WHERE "authors"."paper_id" = ?

Paper should not validate with non-integer year

When creating a paper with year 'nineteen-fifty'
Then validation should fail

Expected #<paper id: nil, title: "computing machinery and intelligence", venue: "mind 49: 433-460", year: 0, created_at: nil, updated_at: nil> not to be valid

Edit author page should save changes

Given an author named 'Alan Turing'
When a user visits the author's edit page
And changes first name to 'Alan Mathison'
And clicks submit

Got AbstractController::ActionNotFound: The action 'update' could not be found for AuthorsController

Author index page should have a link to delete an author

Given an author named 'Alan Turing'
When users visit the authors index page
Then it should have a destroy link

Expected to find css "a" with text "destroy" but there were no matches. also found "add author", "show", "edit", which matched the selector but not all filters.

Edit paper page should save changes

Given a paper
When a user visits the paper's edit page
Then the page should render

Got ActionView::MissingTemplate: Missing template papers/edit, application/edit with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby]}. Searched in:

  • "/home/travis/build/MasterCarl/rails-exercise-16/app/views"

Author #name should return the full name

Given an author a with first name 'Alan' and last name 'Turing'
Then a.name should be 'Alan Turing'

Got NoMethodError: undefined method `name' for #Author:0x0000000737cf10

Paper index page should allow to filter by year

Given a paper published in 1950
And a paper published in 1968
When users visit the papers index page with url parameter year=1950
Then it should not show the paper published in 1968

You can use scopes [1] to implement this behavior.

Expected not to find text "go to statement considered harmful" in "papers add paper title venue year computing machinery and intelligence mind 49: 433-460 1950 show edit destroy go to statement considered harmful communications of the acm 1968 show edit destroy"

Edit paper page should save changes to the author list

Given a paper with one author
And another author called 'Peter Plagiarist'
When a user visits the paper's edit page
And the selects 'Peter Plagiarist' as first author
And submits the form
Then 'Peter Plagiarist' should be author of the paper

Expected #<activerecord::associations::collectionproxy [#<author id: 1, first_name: "alan", last_name: "turing", homepage: "http://wikipedia.de/alan_turing", created_at: "2016-11-13 22:01:02", updated_at: "2016-11-13 22:01:02">]> to include #<author id: 2, first_name: "peter", last_name: "plagiarist", homepage: "http://wikipedia.de/alan_turing", created_at: "2016-11-13 22:01:02", updated_at: "2016-11-13 22:01:02">
diff:
@@ -1,7 +1,7 @@
-[#<author:0x00000006ed95a8

  • id: 2,
  • first_name: "peter",
  • last_name: "plagiarist",
    +[#<author:0x00000006d3da00
  • id: 1,
  • first_name: "alan",
  • last_name: "turing",
    homepage: "http://wikipedia.de/alan_turing",
    created_at: sun, 13 nov 2016 22:01:02 utc +00:00,
    updated_at: sun, 13 nov 2016 22:01:02 utc +00:00>]

Author #name should return the full name

Given an author a with first name 'Alan' and last name 'Turing'
Then a.name should be 'Alan Turing'

Got NoMethodError: undefined method `name' for #Author:0x00000006061e30

Paper should not validate with non-integer year

When creating a paper with year 'nineteen-fifty'
Then validation should fail

Expected #<paper id: nil, title: "computing machinery and intelligence", venue: "mind 49: 433-460", year: 0, created_at: nil, updated_at: nil> not to be valid

Author page should display author details

Given an author named 'Alan Turing'
When a user visits the author's page
Then it should show the author's first name

Expected to find text "first name: alan" in "author"

New author page should render

When a user visits the new author page
Then the page should render

You need to create an AuthorsController with a new action and set-up the appropriate routes. See the Rails guide for help.

Got NameError: undefined local variable or method `new_author_path' for #RSpec::ExampleGroups::NewAuthorPage:0x00000003bcf1a8

Edit paper page should allow to select 5 authors from 5 separate drop downs

Given a paper
When a user visits the paper's edit page
Then it should have a select box for the first author

Create a <label> for each <select> and set the for attribute of the label to the id of the select. For example

f.label "Author 1", for: "paper_author_id_1"
f.collection_select :paper, :author_ids, authors, :id, :name, {selected: @paper.author_ids[1], include_blank: '(none)'}, {name: "paper[author_ids][]", id: "paper_author_id_1"

See collection_select

Expected to find field "author 1" but there were no matches

Edit author page should render

Given an author named 'Alan Turing'
When a user visits the author's edit page
Then the page should render

Got AbstractController::ActionNotFound: The action 'edit' could not be found for AuthorsController

Author index page should render

When a user visits the authors index page
Then the page should render

Got AbstractController::ActionNotFound: The action 'index' could not be found for AuthorsController

Author index page should link to edit author page

Given an author named 'Alan Turing'
When users visit the authors index page
Then it should link to the author's edit page

Expected to find css "a" with text "edit" but there were no matches. also found "add author", "show", which matched the selector but not all filters.

Paper should have and belong to many authors

Given a paper
Then it should have an empty list of authors

Got ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: authors.paper_id: SELECT "authors".* FROM "authors" WHERE "authors"."paper_id" = ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.