mirror of
https://github.com/iritmaximus/brewery.git
synced 2026-10-12 19:13:49 +03:00
upto 3.10
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
class BeerclubsController < ApplicationController
|
||||
before_action :set_beerclub, only: %i[ show edit update destroy ]
|
||||
|
||||
# GET /beerclubs or /beerclubs.json
|
||||
def index
|
||||
@beerclubs = Beerclub.all
|
||||
end
|
||||
|
||||
# GET /beerclubs/1 or /beerclubs/1.json
|
||||
def show
|
||||
end
|
||||
|
||||
# GET /beerclubs/new
|
||||
def new
|
||||
@beerclub = Beerclub.new
|
||||
end
|
||||
|
||||
# GET /beerclubs/1/edit
|
||||
def edit
|
||||
end
|
||||
|
||||
# POST /beerclubs or /beerclubs.json
|
||||
def create
|
||||
@beerclub = Beerclub.new(beerclub_params)
|
||||
|
||||
respond_to do |format|
|
||||
if @beerclub.save
|
||||
format.html { redirect_to beerclub_url(@beerclub), notice: "Beerclub was successfully created." }
|
||||
format.json { render :show, status: :created, location: @beerclub }
|
||||
else
|
||||
format.html { render :new, status: :unprocessable_entity }
|
||||
format.json { render json: @beerclub.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PATCH/PUT /beerclubs/1 or /beerclubs/1.json
|
||||
def update
|
||||
respond_to do |format|
|
||||
if @beerclub.update(beerclub_params)
|
||||
format.html { redirect_to beerclub_url(@beerclub), notice: "Beerclub was successfully updated." }
|
||||
format.json { render :show, status: :ok, location: @beerclub }
|
||||
else
|
||||
format.html { render :edit, status: :unprocessable_entity }
|
||||
format.json { render json: @beerclub.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /beerclubs/1 or /beerclubs/1.json
|
||||
def destroy
|
||||
@beerclub.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to beerclubs_url, notice: "Beerclub was successfully destroyed." }
|
||||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
# Use callbacks to share common setup or constraints between actions.
|
||||
def set_beerclub
|
||||
@beerclub = Beerclub.find(params[:id])
|
||||
end
|
||||
|
||||
# Only allow a list of trusted parameters through.
|
||||
def beerclub_params
|
||||
params.require(:beerclub).permit(:name, :founded, :city)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,72 @@
|
||||
class MembershipsController < ApplicationController
|
||||
before_action :set_membership, only: %i[ show edit update destroy ]
|
||||
|
||||
# GET /memberships or /memberships.json
|
||||
def index
|
||||
@memberships = Membership.all
|
||||
end
|
||||
|
||||
# GET /memberships/1 or /memberships/1.json
|
||||
def show
|
||||
end
|
||||
|
||||
# GET /memberships/new
|
||||
def new
|
||||
@membership = Membership.new
|
||||
@users = User.all
|
||||
@beerclubs = Beerclub.all
|
||||
end
|
||||
|
||||
# GET /memberships/1/edit
|
||||
def edit
|
||||
end
|
||||
|
||||
# POST /memberships or /memberships.json
|
||||
def create
|
||||
@membership = Membership.new(membership_params)
|
||||
|
||||
respond_to do |format|
|
||||
if @membership.save
|
||||
format.html { redirect_to membership_url(@membership), notice: "Membership was successfully created." }
|
||||
format.json { render :show, status: :created, location: @membership }
|
||||
else
|
||||
format.html { render :new, status: :unprocessable_entity }
|
||||
format.json { render json: @membership.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# PATCH/PUT /memberships/1 or /memberships/1.json
|
||||
def update
|
||||
respond_to do |format|
|
||||
if @membership.update(membership_params)
|
||||
format.html { redirect_to membership_url(@membership), notice: "Membership was successfully updated." }
|
||||
format.json { render :show, status: :ok, location: @membership }
|
||||
else
|
||||
format.html { render :edit, status: :unprocessable_entity }
|
||||
format.json { render json: @membership.errors, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# DELETE /memberships/1 or /memberships/1.json
|
||||
def destroy
|
||||
@membership.destroy
|
||||
|
||||
respond_to do |format|
|
||||
format.html { redirect_to memberships_url, notice: "Membership was successfully destroyed." }
|
||||
format.json { head :no_content }
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
# Use callbacks to share common setup or constraints between actions.
|
||||
def set_membership
|
||||
@membership = Membership.find(params[:id])
|
||||
end
|
||||
|
||||
# Only allow a list of trusted parameters through.
|
||||
def membership_params
|
||||
params.require(:membership).permit(:user_id, :beerclub_id)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,2 @@
|
||||
module BeerclubsHelper
|
||||
end
|
||||
@@ -0,0 +1,2 @@
|
||||
module MembershipsHelper
|
||||
end
|
||||
@@ -0,0 +1,16 @@
|
||||
class Beerclub < ApplicationRecord
|
||||
has_many :memberships, dependent: :destroy
|
||||
has_many :users, through: :membership
|
||||
|
||||
validates :name, presence: true
|
||||
validates :founded, numericality: { greater_than_or_equal_to: 1040,
|
||||
only_integer: true }
|
||||
validate :creation_year_not_in_future
|
||||
|
||||
def creation_year_not_in_future
|
||||
if founded > Time.now.year
|
||||
errors.add :founded, "cannot be in the future"
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
@@ -0,0 +1,4 @@
|
||||
class Membership < ApplicationRecord
|
||||
belongs_to :user
|
||||
belongs_to :beerclub
|
||||
end
|
||||
@@ -5,4 +5,6 @@ class User < ApplicationRecord
|
||||
|
||||
has_many :ratings
|
||||
has_many :beers, through: :ratings
|
||||
has_many :memberships, dependent: :destroy
|
||||
has_many :beer_clubs, through: :memberships
|
||||
end
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<div id="<%= dom_id beerclub %>">
|
||||
<p>
|
||||
<strong>Name:</strong>
|
||||
<%= beerclub.name %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Founded:</strong>
|
||||
<%= beerclub.founded %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>City:</strong>
|
||||
<%= beerclub.city %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Members:</strong>
|
||||
<ul>
|
||||
<% beerclub.memberships.each do |m| %>
|
||||
<li>
|
||||
<%= link_to m.user.username, user_path(m.user.id) %>
|
||||
</li>
|
||||
<% end%>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
json.extract! beerclub, :id, :name, :founded, :city, :created_at, :updated_at
|
||||
json.url beerclub_url(beerclub, format: :json)
|
||||
@@ -0,0 +1,32 @@
|
||||
<%= form_with(model: beerclub) do |form| %>
|
||||
<% if beerclub.errors.any? %>
|
||||
<div style="color: red">
|
||||
<h2><%= pluralize(beerclub.errors.count, "error") %> prohibited this beerclub from being saved:</h2>
|
||||
|
||||
<ul>
|
||||
<% beerclub.errors.each do |error| %>
|
||||
<li><%= error.full_message %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div>
|
||||
<%= form.label :name, style: "display: block" %>
|
||||
<%= form.text_field :name %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.label :founded, style: "display: block" %>
|
||||
<%= form.number_field :founded %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.label :city, style: "display: block" %>
|
||||
<%= form.text_field :city %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.submit %>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -0,0 +1,10 @@
|
||||
<h1>Editing beerclub</h1>
|
||||
|
||||
<%= render "form", beerclub: @beerclub %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Show this beerclub", @beerclub %> |
|
||||
<%= link_to "Back to beerclubs", beerclubs_path %>
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<h1>Beerclubs</h1>
|
||||
|
||||
<div id="beerclubs">
|
||||
<% @beerclubs.each do |beerclub| %>
|
||||
<%= render beerclub %>
|
||||
<p>
|
||||
<%= link_to "Show this beerclub", beerclub %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= link_to "New beerclub", new_beerclub_path %>
|
||||
@@ -0,0 +1 @@
|
||||
json.array! @beerclubs, partial: "beerclubs/beerclub", as: :beerclub
|
||||
@@ -0,0 +1,9 @@
|
||||
<h1>New beerclub</h1>
|
||||
|
||||
<%= render "form", beerclub: @beerclub %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Back to beerclubs", beerclubs_path %>
|
||||
</div>
|
||||
@@ -0,0 +1,10 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<%= render @beerclub %>
|
||||
|
||||
<div>
|
||||
<%= link_to "Edit this beerclub", edit_beerclub_path(@beerclub) %> |
|
||||
<%= link_to "Back to beerclubs", beerclubs_path %>
|
||||
|
||||
<%= button_to "Destroy this beerclub", @beerclub, method: :delete %>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
json.partial! "beerclubs/beerclub", beerclub: @beerclub
|
||||
@@ -16,6 +16,7 @@
|
||||
<%= link_to "beers", beers_path %>
|
||||
<%= link_to "ratings", ratings_path %>
|
||||
<%= link_to "users", users_path %>
|
||||
<%= link_to "clubs", beerclubs_path %>
|
||||
|
|
||||
<% if current_user.nil? %>
|
||||
<%= link_to "Sign up", new_user_path %>
|
||||
@@ -23,6 +24,7 @@
|
||||
<% else %>
|
||||
<%= link_to current_user.username, user_path(current_user.id) %>
|
||||
<%= link_to "Rate a new beer", new_rating_path %>
|
||||
<%= link_to "Join a beer club", new_membership_path %>
|
||||
<%= link_to "signout", signout_path, data: { "turbo-method": :delete } %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<%= form_with(model: membership) do |form| %>
|
||||
<% if membership.errors.any? %>
|
||||
<div style="color: red">
|
||||
<h2><%= pluralize(membership.errors.count, "error") %> prohibited this membership from being saved:</h2>
|
||||
|
||||
<ul>
|
||||
<% membership.errors.each do |error| %>
|
||||
<li><%= error.full_message %></li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<div>
|
||||
<%= form.label :user_id, style: "display: block" %>
|
||||
<%= form.select :user_id, options_from_collection_for_select(@users, :id, :username) %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.label :beerclub_id, style: "display: block" %>
|
||||
<%= form.select :beerclub_id, options_from_collection_for_select(@beerclubs, :id, :name) %>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= form.submit %>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -0,0 +1,12 @@
|
||||
<div id="<%= dom_id membership %>">
|
||||
<p>
|
||||
<strong>User:</strong>
|
||||
<%= membership.user.username %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Beer club:</strong>
|
||||
<%= membership.beerclub.name %>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,2 @@
|
||||
json.extract! membership, :id, :user_id, :beer_club_id, :created_at, :updated_at
|
||||
json.url membership_url(membership, format: :json)
|
||||
@@ -0,0 +1,9 @@
|
||||
<h1>Editing membership</h1>
|
||||
|
||||
<%= render "form", membership: @membership %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Show this membership", @membership %> |
|
||||
</div>
|
||||
@@ -0,0 +1,14 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<h1>Memberships</h1>
|
||||
|
||||
<div id="memberships">
|
||||
<% @memberships.each do |membership| %>
|
||||
<%= render membership %>
|
||||
<p>
|
||||
<%= link_to "Show this membership", membership %>
|
||||
</p>
|
||||
<% end %>
|
||||
</div>
|
||||
|
||||
<%= link_to "New membership", new_membership_path %>
|
||||
@@ -0,0 +1 @@
|
||||
json.array! @memberships, partial: "memberships/membership", as: :membership
|
||||
@@ -0,0 +1,9 @@
|
||||
<h1>New membership</h1>
|
||||
|
||||
<%= render "form", membership: @membership %>
|
||||
|
||||
<br>
|
||||
|
||||
<div>
|
||||
<%= link_to "Back to clubs", beerclubs_path %>
|
||||
</div>
|
||||
@@ -0,0 +1,10 @@
|
||||
<p style="color: green"><%= notice %></p>
|
||||
|
||||
<%= render @membership %>
|
||||
|
||||
<div>
|
||||
<%= link_to "Edit this membership", edit_membership_path(@membership) %> |
|
||||
<%= link_to "Back to clubs", beerclubs_path %>
|
||||
|
||||
<%= button_to "Destroy this membership", @membership, method: :delete %>
|
||||
</div>
|
||||
@@ -0,0 +1 @@
|
||||
json.partial! "memberships/membership", membership: @membership
|
||||
@@ -22,6 +22,16 @@
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>Beerclubs:</strong>
|
||||
<ul>
|
||||
<% @user.memberships.each do |m| %>
|
||||
<li>
|
||||
<%= link_to m.beerclub.name, beerclub_path(m.beerclub.id) %>
|
||||
</li>
|
||||
<% end%>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<%= link_to "Edit this user", edit_user_path(@user) %> |
|
||||
<%= link_to "Back to users", users_path %>
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
Rails.application.routes.draw do
|
||||
resources :beerclubs
|
||||
resources :users
|
||||
resources :beers
|
||||
resources :breweries
|
||||
@@ -12,4 +13,5 @@ Rails.application.routes.draw do
|
||||
delete 'signout', to: 'sessions#destroy'
|
||||
resources :ratings, only: [:index, :new, :create, :destroy]
|
||||
resource :session, only: [:new, :create, :destroy]
|
||||
resources :memberships, only: [:new, :create, :destroy]
|
||||
end
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class CreateBeerclubs < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table :beerclubs do |t|
|
||||
t.string :name
|
||||
t.integer :founded
|
||||
t.string :city
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,10 @@
|
||||
class CreateMemberships < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
create_table :memberships do |t|
|
||||
t.integer :user_id
|
||||
t.integer :beer_club_id
|
||||
|
||||
t.timestamps
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
class RenameMembershipFields < ActiveRecord::Migration[7.0]
|
||||
def change
|
||||
rename_column :memberships, :beer_club_id, :beerclub_id
|
||||
end
|
||||
end
|
||||
Generated
+16
-1
@@ -10,7 +10,15 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema[7.0].define(version: 2023_08_10_071347) do
|
||||
ActiveRecord::Schema[7.0].define(version: 2023_08_10_162557) do
|
||||
create_table "beerclubs", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.integer "founded"
|
||||
t.string "city"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
create_table "beers", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.string "style"
|
||||
@@ -26,6 +34,13 @@ ActiveRecord::Schema[7.0].define(version: 2023_08_10_071347) do
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
create_table "memberships", force: :cascade do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "beerclub_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
end
|
||||
|
||||
create_table "ratings", force: :cascade do |t|
|
||||
t.integer "score"
|
||||
t.integer "beer_id"
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
require "test_helper"
|
||||
|
||||
class BeerclubsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
@beerclub = beerclubs(:one)
|
||||
end
|
||||
|
||||
test "should get index" do
|
||||
get beerclubs_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get new" do
|
||||
get new_beerclub_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create beerclub" do
|
||||
assert_difference("Beerclub.count") do
|
||||
post beerclubs_url, params: { beerclub: { city: @beerclub.city, founded: @beerclub.founded, name: @beerclub.name } }
|
||||
end
|
||||
|
||||
assert_redirected_to beerclub_url(Beerclub.last)
|
||||
end
|
||||
|
||||
test "should show beerclub" do
|
||||
get beerclub_url(@beerclub)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get edit" do
|
||||
get edit_beerclub_url(@beerclub)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should update beerclub" do
|
||||
patch beerclub_url(@beerclub), params: { beerclub: { city: @beerclub.city, founded: @beerclub.founded, name: @beerclub.name } }
|
||||
assert_redirected_to beerclub_url(@beerclub)
|
||||
end
|
||||
|
||||
test "should destroy beerclub" do
|
||||
assert_difference("Beerclub.count", -1) do
|
||||
delete beerclub_url(@beerclub)
|
||||
end
|
||||
|
||||
assert_redirected_to beerclubs_url
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,48 @@
|
||||
require "test_helper"
|
||||
|
||||
class MembershipsControllerTest < ActionDispatch::IntegrationTest
|
||||
setup do
|
||||
@membership = memberships(:one)
|
||||
end
|
||||
|
||||
test "should get index" do
|
||||
get memberships_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get new" do
|
||||
get new_membership_url
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should create membership" do
|
||||
assert_difference("Membership.count") do
|
||||
post memberships_url, params: { membership: { beer_club_id: @membership.beer_club_id, user_id: @membership.user_id } }
|
||||
end
|
||||
|
||||
assert_redirected_to membership_url(Membership.last)
|
||||
end
|
||||
|
||||
test "should show membership" do
|
||||
get membership_url(@membership)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should get edit" do
|
||||
get edit_membership_url(@membership)
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
test "should update membership" do
|
||||
patch membership_url(@membership), params: { membership: { beer_club_id: @membership.beer_club_id, user_id: @membership.user_id } }
|
||||
assert_redirected_to membership_url(@membership)
|
||||
end
|
||||
|
||||
test "should destroy membership" do
|
||||
assert_difference("Membership.count", -1) do
|
||||
delete membership_url(@membership)
|
||||
end
|
||||
|
||||
assert_redirected_to memberships_url
|
||||
end
|
||||
end
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
name: MyString
|
||||
founded: 1
|
||||
city: MyString
|
||||
|
||||
two:
|
||||
name: MyString
|
||||
founded: 1
|
||||
city: MyString
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||
|
||||
one:
|
||||
user_id: 1
|
||||
beer_club_id: 1
|
||||
|
||||
two:
|
||||
user_id: 1
|
||||
beer_club_id: 1
|
||||
@@ -0,0 +1,7 @@
|
||||
require "test_helper"
|
||||
|
||||
class BeerclubTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
||||
@@ -0,0 +1,7 @@
|
||||
require "test_helper"
|
||||
|
||||
class MembershipTest < ActiveSupport::TestCase
|
||||
# test "the truth" do
|
||||
# assert true
|
||||
# end
|
||||
end
|
||||
@@ -0,0 +1,45 @@
|
||||
require "application_system_test_case"
|
||||
|
||||
class BeerclubsTest < ApplicationSystemTestCase
|
||||
setup do
|
||||
@beerclub = beerclubs(:one)
|
||||
end
|
||||
|
||||
test "visiting the index" do
|
||||
visit beerclubs_url
|
||||
assert_selector "h1", text: "Beerclubs"
|
||||
end
|
||||
|
||||
test "should create beerclub" do
|
||||
visit beerclubs_url
|
||||
click_on "New beerclub"
|
||||
|
||||
fill_in "City", with: @beerclub.city
|
||||
fill_in "Founded", with: @beerclub.founded
|
||||
fill_in "Name", with: @beerclub.name
|
||||
click_on "Create Beerclub"
|
||||
|
||||
assert_text "Beerclub was successfully created"
|
||||
click_on "Back"
|
||||
end
|
||||
|
||||
test "should update Beerclub" do
|
||||
visit beerclub_url(@beerclub)
|
||||
click_on "Edit this beerclub", match: :first
|
||||
|
||||
fill_in "City", with: @beerclub.city
|
||||
fill_in "Founded", with: @beerclub.founded
|
||||
fill_in "Name", with: @beerclub.name
|
||||
click_on "Update Beerclub"
|
||||
|
||||
assert_text "Beerclub was successfully updated"
|
||||
click_on "Back"
|
||||
end
|
||||
|
||||
test "should destroy Beerclub" do
|
||||
visit beerclub_url(@beerclub)
|
||||
click_on "Destroy this beerclub", match: :first
|
||||
|
||||
assert_text "Beerclub was successfully destroyed"
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,43 @@
|
||||
require "application_system_test_case"
|
||||
|
||||
class MembershipsTest < ApplicationSystemTestCase
|
||||
setup do
|
||||
@membership = memberships(:one)
|
||||
end
|
||||
|
||||
test "visiting the index" do
|
||||
visit memberships_url
|
||||
assert_selector "h1", text: "Memberships"
|
||||
end
|
||||
|
||||
test "should create membership" do
|
||||
visit memberships_url
|
||||
click_on "New membership"
|
||||
|
||||
fill_in "Beer club", with: @membership.beer_club_id
|
||||
fill_in "User", with: @membership.user_id
|
||||
click_on "Create Membership"
|
||||
|
||||
assert_text "Membership was successfully created"
|
||||
click_on "Back"
|
||||
end
|
||||
|
||||
test "should update Membership" do
|
||||
visit membership_url(@membership)
|
||||
click_on "Edit this membership", match: :first
|
||||
|
||||
fill_in "Beer club", with: @membership.beer_club_id
|
||||
fill_in "User", with: @membership.user_id
|
||||
click_on "Update Membership"
|
||||
|
||||
assert_text "Membership was successfully updated"
|
||||
click_on "Back"
|
||||
end
|
||||
|
||||
test "should destroy Membership" do
|
||||
visit membership_url(@membership)
|
||||
click_on "Destroy this membership", match: :first
|
||||
|
||||
assert_text "Membership was successfully destroyed"
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user