From 835ea952dd3671a76621cd8717000d854781d6a7 Mon Sep 17 00:00:00 2001 From: Canan Ercan Date: Sun, 21 Jun 2020 13:18:33 +0300 Subject: [PATCH] Add teams page (#4) --- app/assets/stylesheets/retros.scss | 3 + app/controllers/application_controller.rb | 5 ++ app/controllers/retros_controller.rb | 29 +++++++ app/controllers/teams_controller.rb | 86 ++++++++++++++++++- app/helpers/retros_helper.rb | 2 + app/javascript/packs/application.js | 3 + app/models/answer.rb | 5 ++ app/models/entry.rb | 4 + app/models/outcome.rb | 2 + app/models/retro.rb | 11 +++ app/models/team.rb | 2 + app/models/user.rb | 6 ++ app/models/user_team.rb | 2 + app/views/devise/registrations/edit.html.erb | 4 - app/views/layouts/_messages.html.erb | 28 ++++++ app/views/layouts/application.html.erb | 11 +-- app/views/retros/new.html.erb | 18 ++++ app/views/retros/show.html.erb | 5 ++ app/views/teams/edit.html.erb | 67 +++++++++++++++ app/views/teams/index.html.erb | 29 +++++-- app/views/teams/show.html.erb | 35 ++++++++ app/views/welcome/index.html.erb | 15 +++- config/locales/devise.en.yml | 4 +- config/routes.rb | 13 ++- ...20200527222000_add_description_to_teams.rb | 5 ++ db/migrate/20200604220409_create_retros.rb | 12 +++ db/migrate/20200604220423_create_outcomes.rb | 12 +++ db/migrate/20200604220438_create_answers.rb | 11 +++ db/migrate/20200604220451_create_entries.rb | 11 +++ db/schema.rb | 37 +++++++- test/controllers/retros_controller_test.rb | 7 ++ test/fixtures/answers.yml | 11 +++ test/fixtures/entries.yml | 11 +++ test/fixtures/outcomes.yml | 11 +++ test/fixtures/retros.yml | 11 +++ test/models/answer_test.rb | 7 ++ test/models/entry_test.rb | 7 ++ test/models/outcome_test.rb | 7 ++ test/models/retro_test.rb | 7 ++ 39 files changed, 531 insertions(+), 25 deletions(-) create mode 100644 app/assets/stylesheets/retros.scss create mode 100644 app/controllers/retros_controller.rb create mode 100644 app/helpers/retros_helper.rb create mode 100644 app/models/answer.rb create mode 100644 app/models/entry.rb create mode 100644 app/models/outcome.rb create mode 100644 app/models/retro.rb create mode 100644 app/views/layouts/_messages.html.erb create mode 100644 app/views/retros/new.html.erb create mode 100644 app/views/retros/show.html.erb create mode 100644 app/views/teams/edit.html.erb create mode 100644 app/views/teams/show.html.erb create mode 100644 db/migrate/20200527222000_add_description_to_teams.rb create mode 100644 db/migrate/20200604220409_create_retros.rb create mode 100644 db/migrate/20200604220423_create_outcomes.rb create mode 100644 db/migrate/20200604220438_create_answers.rb create mode 100644 db/migrate/20200604220451_create_entries.rb create mode 100644 test/controllers/retros_controller_test.rb create mode 100644 test/fixtures/answers.yml create mode 100644 test/fixtures/entries.yml create mode 100644 test/fixtures/outcomes.yml create mode 100644 test/fixtures/retros.yml create mode 100644 test/models/answer_test.rb create mode 100644 test/models/entry_test.rb create mode 100644 test/models/outcome_test.rb create mode 100644 test/models/retro_test.rb diff --git a/app/assets/stylesheets/retros.scss b/app/assets/stylesheets/retros.scss new file mode 100644 index 0000000..44e2de4 --- /dev/null +++ b/app/assets/stylesheets/retros.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the retros controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: https://sass-lang.com/ diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6b4dcfa..e891916 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,3 +1,8 @@ class ApplicationController < ActionController::Base before_action :authenticate_user! + helper_method :current_user_teams + + def current_user_teams + current_user.teams + end end diff --git a/app/controllers/retros_controller.rb b/app/controllers/retros_controller.rb new file mode 100644 index 0000000..94070ac --- /dev/null +++ b/app/controllers/retros_controller.rb @@ -0,0 +1,29 @@ +class RetrosController < ApplicationController + before_action :find_retro, only: [:show] + + def new + end + + def create + @retro = Retro.new(retro_params) + if @retro.save + redirect_to @retro + else + flash[:error] = 'Retro session could not be created.' + redirect_to new_retro_path + end + end + + def show + end + + private + + def retro_params + params.require(:retro).permit(:team_id, :date) + end + + def find_retro + @retro = Retro.find(params[:id]) + end +end diff --git a/app/controllers/teams_controller.rb b/app/controllers/teams_controller.rb index 6f7e3ae..4cec2c3 100644 --- a/app/controllers/teams_controller.rb +++ b/app/controllers/teams_controller.rb @@ -1,5 +1,89 @@ class TeamsController < ApplicationController + before_action :find_team, except: [:index] + before_action :team_users, only: [:show, :edit] + def index - @teams = Team.all + end + + def show + end + + def edit + end + + def update + begin + @team.update!(team_params) + flash[:success] = 'Team was successfully updated.' + redirect_to team_path + rescue StandardError => e + flash[:error] = 'Oops, please try again.' + reload + end + end + + def destroy + begin + @team.destroy! + flash[:success] = 'Team is gone forever.' + redirect_to teams_path + rescue StandardError => e + flash[:error] = 'Oops, please try again.' + reload + end + end + + def add_user + company = @team.company + + begin + user = company.users.find_by!(email: params[:user][:email]) + raise UserAlreadyPresentError if user.already_present?(@team) + + @team.users << user + flash[:success] = 'Say hi to your new team member!' + rescue ActiveRecord::RecordNotFound => e + flash[:error] = 'User could not been found in your company.' + rescue UserAlreadyPresentError + flash[:error] = "You can only have one #{user.name}." + rescue StandardError => e + flash[:error] = 'Oops, please try again.' + end + + reload + end + + def remove_user_from_team + begin + relation = UserTeam.find_by!(user_id: params[:user_id], team_id: @team.id) + relation.destroy! + flash[:success] = 'User was successfully removed. Farewell...' + rescue ActiveRecord::RecordNotFound => e + flash[:error] = 'User is not in the team anyway.' + rescue StandardError => e + flash[:error] = 'Oops, please try again.' + end + + reload + end + + private + + class UserAlreadyPresentError < StandardError; end + + def find_team + @team = Team.find(params[:id]) + end + + def team_users + @team_users = @team.users + end + + def team_params + params.require(:team).permit(:name, :description) + end + + def reload + redirect_back(fallback_location: edit_team_path) end end diff --git a/app/helpers/retros_helper.rb b/app/helpers/retros_helper.rb new file mode 100644 index 0000000..f33f70f --- /dev/null +++ b/app/helpers/retros_helper.rb @@ -0,0 +1,2 @@ +module RetrosHelper +end diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index d75f8ee..3595145 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -22,4 +22,7 @@ require('jquery') $(document).on('turbolinks:load', function () { // $('.ui.dropdown').dropdown(); use this later on @canan + $('.message .close').on('click', function() { + $(this).closest('.message').hide(); + }); }) \ No newline at end of file diff --git a/app/models/answer.rb b/app/models/answer.rb new file mode 100644 index 0000000..17f0fb3 --- /dev/null +++ b/app/models/answer.rb @@ -0,0 +1,5 @@ +class Answer < ApplicationRecord + belongs_to :user + belongs_to :retro + has_many :entries, dependent: :destroy +end diff --git a/app/models/entry.rb b/app/models/entry.rb new file mode 100644 index 0000000..d5ebe60 --- /dev/null +++ b/app/models/entry.rb @@ -0,0 +1,4 @@ +class Entry < ApplicationRecord + belongs_to :answer + validates :detail, presence: true, length: { minimum: 2, maximum: 255 } +end diff --git a/app/models/outcome.rb b/app/models/outcome.rb new file mode 100644 index 0000000..8cdc381 --- /dev/null +++ b/app/models/outcome.rb @@ -0,0 +1,2 @@ +class Outcome < ApplicationRecord +end diff --git a/app/models/retro.rb b/app/models/retro.rb new file mode 100644 index 0000000..afdf56a --- /dev/null +++ b/app/models/retro.rb @@ -0,0 +1,11 @@ +class Retro < ApplicationRecord + # date and time validation + belongs_to :team + has_many :outcomes, dependent: :destroy + has_many :answers, dependent: :destroy + + def active? + status == 'active' + end + +end diff --git a/app/models/team.rb b/app/models/team.rb index fcf3434..83d5a35 100644 --- a/app/models/team.rb +++ b/app/models/team.rb @@ -3,5 +3,7 @@ class Team < ApplicationRecord validates :company_id, presence: true belongs_to :company + has_many :user_teams, dependent: :destroy has_many :users, through: :user_teams + has_many :retros end diff --git a/app/models/user.rb b/app/models/user.rb index 0736b38..6a41f2c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -10,5 +10,11 @@ class User < ApplicationRecord uniqueness: { case_sensitive: false }, format: { with: VALID_EMAIL_REGEX } + belongs_to :company, optional: true + has_many :user_teams, dependent: :destroy has_many :teams, through: :user_teams + + def already_present?(resource) + resource.users.include?(self) + end end diff --git a/app/models/user_team.rb b/app/models/user_team.rb index d3e34ed..a6e9842 100644 --- a/app/models/user_team.rb +++ b/app/models/user_team.rb @@ -1,4 +1,6 @@ class UserTeam < ApplicationRecord + belongs_to :team + belongs_to :user validates :user_id, presence: true validates :team_id, presence: true end diff --git a/app/views/devise/registrations/edit.html.erb b/app/views/devise/registrations/edit.html.erb index 2196e83..f3b3f03 100644 --- a/app/views/devise/registrations/edit.html.erb +++ b/app/views/devise/registrations/edit.html.erb @@ -57,7 +57,3 @@
- - - - diff --git a/app/views/layouts/_messages.html.erb b/app/views/layouts/_messages.html.erb new file mode 100644 index 0000000..173bb49 --- /dev/null +++ b/app/views/layouts/_messages.html.erb @@ -0,0 +1,28 @@ +<% flash.each do |message_type, message_content| %> +<% if notice %> +
+
+ +
+ <%= notice %> +
+
+
+
+ <% elsif alert %> +
+
+ + <%= alert %> +
+
+
+ <% else %> +
+ +
+ <%= message_content %> +
+
+ <% end %> +<% end %> \ No newline at end of file diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 93b90a1..0594667 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -15,12 +15,9 @@ <%= render 'layouts/navigation'%> - <% if notice %> -

<%= notice %>

- <% end %> - <% if alert %> -

<%= alert %>

- <% end %> - <%= yield %> +
+ <%= render 'layouts/messages' %> + <%= yield %> +
diff --git a/app/views/retros/new.html.erb b/app/views/retros/new.html.erb new file mode 100644 index 0000000..0f30fb4 --- /dev/null +++ b/app/views/retros/new.html.erb @@ -0,0 +1,18 @@ +
+
+ <%= form_for(:retro, url: retros_path, html: { method: :post, class: 'ui form'}) do |f| %> +
+ <%= f.label :team %> + <%= f.collection_select :team_id, current_user_teams, :id, :name %> +
+
+ <%= f.label :DateTime %> + <%= f.datetime_select :date %> +
+
+ <%= f.button "Create", class: 'blue ui button' %> + <%= link_to "Cancel", root_path, class: 'ui button'%> +
+ <% end %> +
+
\ No newline at end of file diff --git a/app/views/retros/show.html.erb b/app/views/retros/show.html.erb new file mode 100644 index 0000000..2b9bbe0 --- /dev/null +++ b/app/views/retros/show.html.erb @@ -0,0 +1,5 @@ +
+ +

Retro show

+ <%= @retro.id %> +
\ No newline at end of file diff --git a/app/views/teams/edit.html.erb b/app/views/teams/edit.html.erb new file mode 100644 index 0000000..dee27b1 --- /dev/null +++ b/app/views/teams/edit.html.erb @@ -0,0 +1,67 @@ +
+

+ +
+ Team Settings +
Manage your preferences
+
+

+
+
+
+ <%= form_for(@team, url: team_path(@team.id), html: { method: :put, class: 'ui form'}) do |f| %> +
+ <%= f.label :team_name %> + <%= f.text_field :name %> +
+ +
+ <%= f.label :team_description %> + <%= f.text_field :description %> +
+ +
+ <%= f.button "Save", class: 'blue ui button' %> + <%= link_to "Cancel", @team, class: 'ui button'%> +
+ <% end %> +
+
+
+ <% @team_users.each do |user| %> +
+
+
+ +
+ <%= link_to "Remove", remove_user_team_path(@team.id, user.id), data: { confirm: "Are you sure?" }, method: :delete, class: 'ui tiny red button' %> +
+
+
+ <% if user.name? %> + <%= user.name %> + <% else %> + <%= user.email %> + <% end %> +
+ <%= user.title %> +
+
+ <% end %> +
+
+
+
+
+ <%= form_for :user, url: add_user_team_path(@team.id), html: { method: :post, class: 'ui form'} do |f| %> +
+ <%= f.label :user_email %> + <%= f.email_field :email %> +
+ + <%= f.button "Add User", class: 'ui blue button' %> + <% end %> +
+
+ <%= link_to "Delete Team", team_path(@team), data: { confirm: "Are you sure?" }, method: :delete, class: 'negative ui button' %> +
diff --git a/app/views/teams/index.html.erb b/app/views/teams/index.html.erb index 9582a26..4375755 100644 --- a/app/views/teams/index.html.erb +++ b/app/views/teams/index.html.erb @@ -1,5 +1,24 @@ -<% @teams.each do |team| %> - -<% end %> \ No newline at end of file +
+

+ +
+ My Teams +
+

+
+
+ <% current_user_teams.each do |team| %> +
+
+
+ <%= link_to team.name, team %> +
+
+ <%= pluralize(team.users.count, 'member') %> +
+
+
+ <% end %> +
+
+
\ No newline at end of file diff --git a/app/views/teams/show.html.erb b/app/views/teams/show.html.erb new file mode 100644 index 0000000..4a18692 --- /dev/null +++ b/app/views/teams/show.html.erb @@ -0,0 +1,35 @@ +
+
+
+
+ <%= @team.name %> +
+
+ <%= pluralize(@team_users.count, "Member") %> +
+
+ <%= @team.description %> +
+
+
+
+ <% @team_users.each do |user| %> +
+
+
+ <% if user.name? %> + <%= link_to user.name, user %> + <% else %> + <%= link_to user.email, user %> + <% end %> +
+
+
+ <% end %> +
+
+
+ <%= link_to 'Edit Team', edit_team_path(@team.id), class: 'ui button' %> +
+
+
\ No newline at end of file diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index b88508c..1ea1347 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -1 +1,14 @@ -

Welcome to Pretro!

+<%= link_to ' New Retro'.html_safe, new_retro_path, class: 'ui left floated button' %> +
+ <% current_user_teams.each do |team| %> +

+ <%= link_to team.name, team %> +

+ <% team.retros.each do |retro| %> + <% if retro.active? %> + <%= retro.id %> +
+ <% end %> + <% end %> + <% end %> +
\ No newline at end of file diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml index ca3d619..3ab57c9 100644 --- a/config/locales/devise.en.yml +++ b/config/locales/devise.en.yml @@ -61,5 +61,5 @@ en: not_found: "not found" not_locked: "was not locked" not_saved: - one: "1 error prohibited this %{resource} from being saved:" - other: "%{count} errors prohibited this %{resource} from being saved:" + one: "Error:" + other: "Errors:" diff --git a/config/routes.rb b/config/routes.rb index 57f08c6..61b6d9e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,6 @@ Rails.application.routes.draw do + root 'welcome#index' + devise_for :users, controllers: { sessions: 'users/sessions', passwords: 'users/passwords', @@ -7,8 +9,11 @@ } resources :users, only: [:show, :index] - - root 'welcome#index' - get 'teams', to: 'teams#index' - + resources :teams do + member do + delete 'remove_user/:user_id', to: 'teams#remove_user_from_team', as: 'remove_user' + post 'add_user', to: 'teams#add_user', as: 'add_user' + end + end + resources :retros end diff --git a/db/migrate/20200527222000_add_description_to_teams.rb b/db/migrate/20200527222000_add_description_to_teams.rb new file mode 100644 index 0000000..6e5af34 --- /dev/null +++ b/db/migrate/20200527222000_add_description_to_teams.rb @@ -0,0 +1,5 @@ +class AddDescriptionToTeams < ActiveRecord::Migration[6.0] + def change + add_column :teams, :description, :string + end +end diff --git a/db/migrate/20200604220409_create_retros.rb b/db/migrate/20200604220409_create_retros.rb new file mode 100644 index 0000000..584540a --- /dev/null +++ b/db/migrate/20200604220409_create_retros.rb @@ -0,0 +1,12 @@ +class CreateRetros < ActiveRecord::Migration[6.0] + def change + create_table :retros do |t| + t.integer :team_id + t.datetime :date + t.decimal :rating + t.string :status, default: "active" + + t.timestamps + end + end +end diff --git a/db/migrate/20200604220423_create_outcomes.rb b/db/migrate/20200604220423_create_outcomes.rb new file mode 100644 index 0000000..175ff39 --- /dev/null +++ b/db/migrate/20200604220423_create_outcomes.rb @@ -0,0 +1,12 @@ +class CreateOutcomes < ActiveRecord::Migration[6.0] + def change + create_table :outcomes do |t| + t.integer :retro_id + t.string :detail + t.string :status + t.string :priority + + t.timestamps + end + end +end diff --git a/db/migrate/20200604220438_create_answers.rb b/db/migrate/20200604220438_create_answers.rb new file mode 100644 index 0000000..d82421b --- /dev/null +++ b/db/migrate/20200604220438_create_answers.rb @@ -0,0 +1,11 @@ +class CreateAnswers < ActiveRecord::Migration[6.0] + def change + create_table :answers do |t| + t.integer :user_id + t.integer :retro_id + t.integer :rating + + t.timestamps + end + end +end diff --git a/db/migrate/20200604220451_create_entries.rb b/db/migrate/20200604220451_create_entries.rb new file mode 100644 index 0000000..415dcfa --- /dev/null +++ b/db/migrate/20200604220451_create_entries.rb @@ -0,0 +1,11 @@ +class CreateEntries < ActiveRecord::Migration[6.0] + def change + create_table :entries do |t| + t.integer :answer_id + t.string :type + t.string :detail + + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 1788ab7..796a460 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,15 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_05_09_085933) do +ActiveRecord::Schema.define(version: 2020_06_04_220451) do + + create_table "answers", force: :cascade do |t| + t.integer "user_id" + t.integer "retro_id" + t.integer "rating" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end create_table "companies", force: :cascade do |t| t.string "name" @@ -18,11 +26,38 @@ t.datetime "updated_at", precision: 6, null: false end + create_table "entries", force: :cascade do |t| + t.integer "answer_id" + t.string "type" + t.string "detail" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + + create_table "outcomes", force: :cascade do |t| + t.integer "retro_id" + t.string "detail" + t.string "status" + t.string "priority" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + + create_table "retros", force: :cascade do |t| + t.integer "team_id" + t.datetime "date" + t.decimal "rating" + t.string "status", default: "active" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end + create_table "teams", force: :cascade do |t| t.string "name" t.integer "company_id" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false + t.string "description" end create_table "user_teams", force: :cascade do |t| diff --git a/test/controllers/retros_controller_test.rb b/test/controllers/retros_controller_test.rb new file mode 100644 index 0000000..dc39d7d --- /dev/null +++ b/test/controllers/retros_controller_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class RetrosControllerTest < ActionDispatch::IntegrationTest + # test "the truth" do + # assert true + # end +end diff --git a/test/fixtures/answers.yml b/test/fixtures/answers.yml new file mode 100644 index 0000000..5181636 --- /dev/null +++ b/test/fixtures/answers.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/fixtures/entries.yml b/test/fixtures/entries.yml new file mode 100644 index 0000000..5181636 --- /dev/null +++ b/test/fixtures/entries.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/fixtures/outcomes.yml b/test/fixtures/outcomes.yml new file mode 100644 index 0000000..5181636 --- /dev/null +++ b/test/fixtures/outcomes.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/fixtures/retros.yml b/test/fixtures/retros.yml new file mode 100644 index 0000000..5181636 --- /dev/null +++ b/test/fixtures/retros.yml @@ -0,0 +1,11 @@ +# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +# This model initially had no columns defined. If you add columns to the +# model remove the '{}' from the fixture names and add the columns immediately +# below each fixture, per the syntax in the comments below +# +one: {} +# column: value +# +two: {} +# column: value diff --git a/test/models/answer_test.rb b/test/models/answer_test.rb new file mode 100644 index 0000000..c0af5c3 --- /dev/null +++ b/test/models/answer_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class AnswerTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/entry_test.rb b/test/models/entry_test.rb new file mode 100644 index 0000000..d3293bc --- /dev/null +++ b/test/models/entry_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class EntryTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/outcome_test.rb b/test/models/outcome_test.rb new file mode 100644 index 0000000..f1344f0 --- /dev/null +++ b/test/models/outcome_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class OutcomeTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end diff --git a/test/models/retro_test.rb b/test/models/retro_test.rb new file mode 100644 index 0000000..3004499 --- /dev/null +++ b/test/models/retro_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class RetroTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end