Generates Task model and adds relative unit tests
This commit is contained in:
parent
66038c6afb
commit
5584e328b1
8 changed files with 64 additions and 2 deletions
|
|
@ -4,6 +4,8 @@ class Activity < ApplicationRecord
|
||||||
has_one :joined_user_activity
|
has_one :joined_user_activity
|
||||||
has_one :user, :through => :joined_user_activity
|
has_one :user, :through => :joined_user_activity
|
||||||
|
|
||||||
|
has_many :tasks
|
||||||
|
|
||||||
validates :name, presence: true
|
validates :name, presence: true
|
||||||
validates :author, presence: true
|
validates :author, presence: true
|
||||||
end
|
end
|
||||||
|
|
|
||||||
7
app/models/task.rb
Normal file
7
app/models/task.rb
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
class Task < ApplicationRecord
|
||||||
|
validates :name, presence: true
|
||||||
|
validates :user, presence: true
|
||||||
|
|
||||||
|
belongs_to :activity
|
||||||
|
belongs_to :user
|
||||||
|
end
|
||||||
|
|
@ -9,5 +9,7 @@ class User < ApplicationRecord
|
||||||
has_many :joined_user_activities
|
has_many :joined_user_activities
|
||||||
has_many :activities, :through => :joined_user_activities
|
has_many :activities, :through => :joined_user_activities
|
||||||
|
|
||||||
|
has_many :tasks
|
||||||
|
|
||||||
has_secure_password
|
has_secure_password
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,9 @@ Rails.application.routes.draw do
|
||||||
namespace :v1 do
|
namespace :v1 do
|
||||||
resources :users
|
resources :users
|
||||||
resources :tokens, only: %i[create]
|
resources :tokens, only: %i[create]
|
||||||
resources :activities
|
resources :activities do
|
||||||
|
resources :tasks
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
12
db/migrate/20210510133939_create_tasks.rb
Normal file
12
db/migrate/20210510133939_create_tasks.rb
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
class CreateTasks < ActiveRecord::Migration[6.1]
|
||||||
|
def change
|
||||||
|
create_table :tasks do |t|
|
||||||
|
t.string :name, index: true
|
||||||
|
t.text :description
|
||||||
|
t.references :activity, null: false
|
||||||
|
t.references :user, null: false
|
||||||
|
|
||||||
|
t.timestamps
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
14
db/schema.rb
14
db/schema.rb
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 2021_04_29_184439) do
|
ActiveRecord::Schema.define(version: 2021_05_10_133939) do
|
||||||
|
|
||||||
create_table "activities", force: :cascade do |t|
|
create_table "activities", force: :cascade do |t|
|
||||||
t.string "name", null: false
|
t.string "name", null: false
|
||||||
|
|
@ -32,6 +32,18 @@ ActiveRecord::Schema.define(version: 2021_04_29_184439) do
|
||||||
t.index ["user_id"], name: "index_joined_user_activities_on_user_id"
|
t.index ["user_id"], name: "index_joined_user_activities_on_user_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
create_table "tasks", force: :cascade do |t|
|
||||||
|
t.string "name"
|
||||||
|
t.text "description"
|
||||||
|
t.integer "activity_id", null: false
|
||||||
|
t.integer "user_id", null: false
|
||||||
|
t.datetime "created_at", precision: 6, null: false
|
||||||
|
t.datetime "updated_at", precision: 6, null: false
|
||||||
|
t.index ["activity_id"], name: "index_tasks_on_activity_id"
|
||||||
|
t.index ["name"], name: "index_tasks_on_name"
|
||||||
|
t.index ["user_id"], name: "index_tasks_on_user_id"
|
||||||
|
end
|
||||||
|
|
||||||
create_table "users", force: :cascade do |t|
|
create_table "users", force: :cascade do |t|
|
||||||
t.string "email", null: false
|
t.string "email", null: false
|
||||||
t.string "username", null: false
|
t.string "username", null: false
|
||||||
|
|
|
||||||
7
test/fixtures/tasks.yml
vendored
Normal file
7
test/fixtures/tasks.yml
vendored
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html
|
||||||
|
|
||||||
|
one:
|
||||||
|
name: Do something
|
||||||
|
description: Description of a task
|
||||||
|
user: one
|
||||||
|
activity: one
|
||||||
18
test/models/task_test.rb
Normal file
18
test/models/task_test.rb
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
require "test_helper"
|
||||||
|
|
||||||
|
class TaskTest < ActiveSupport::TestCase
|
||||||
|
setup do
|
||||||
|
@user = users(:one)
|
||||||
|
@activity = activities(:one)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "task should be valid" do
|
||||||
|
task = Task.new(name: "Write", description: "Write a new line", user_id: @user.id, activity_id: @activity.id)
|
||||||
|
assert task.valid?
|
||||||
|
end
|
||||||
|
|
||||||
|
test "task should not be valid" do
|
||||||
|
task = Task.new(name: "Write", description: "Write a new line")
|
||||||
|
assert_not task.valid?
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Add table
Add a link
Reference in a new issue