fix travis and rspec
This commit is contained in:
parent
7ba09d3148
commit
d817f16b4f
16 changed files with 216 additions and 256 deletions
|
@ -11,6 +11,7 @@ before_script:
|
|||
- export RAILS_ENV=test
|
||||
- cp .example-env .env
|
||||
- bundle exec rake db:create
|
||||
- bundle exec rake db:environment:set
|
||||
- bundle exec rake db:schema:load
|
||||
- echo "node setup"
|
||||
- . $HOME/.nvm/nvm.sh
|
||||
|
|
25
Gemfile.lock
25
Gemfile.lock
|
@ -219,22 +219,23 @@ GEM
|
|||
redis (3.3.1)
|
||||
responders (2.2.0)
|
||||
railties (>= 4.2.0, < 5.1)
|
||||
rspec-core (3.1.7)
|
||||
rspec-support (~> 3.1.0)
|
||||
rspec-expectations (3.1.2)
|
||||
rspec-core (3.5.2)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-expectations (3.5.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.1.0)
|
||||
rspec-mocks (3.1.3)
|
||||
rspec-support (~> 3.1.0)
|
||||
rspec-rails (3.1.0)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-mocks (3.5.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-rails (3.5.1)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.1.0)
|
||||
rspec-expectations (~> 3.1.0)
|
||||
rspec-mocks (~> 3.1.0)
|
||||
rspec-support (~> 3.1.0)
|
||||
rspec-support (3.1.2)
|
||||
rspec-core (~> 3.5.0)
|
||||
rspec-expectations (~> 3.5.0)
|
||||
rspec-mocks (~> 3.5.0)
|
||||
rspec-support (~> 3.5.0)
|
||||
rspec-support (3.5.0)
|
||||
rubocop (0.42.0)
|
||||
parser (>= 2.3.1.1, < 3.0)
|
||||
powerpack (~> 0.1)
|
||||
|
|
92
db/schema.rb
92
db/schema.rb
|
@ -1,4 +1,3 @@
|
|||
# encoding: UTF-8
|
||||
# This file is auto-generated from the current state of the database. Instead
|
||||
# of editing this file, please use the migrations feature of Active Record to
|
||||
# incrementally modify your database, and then regenerate this schema definition.
|
||||
|
@ -28,10 +27,9 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.string "queue"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
|
||||
end
|
||||
|
||||
add_index "delayed_jobs", ["priority", "run_at"], name: "delayed_jobs_priority", using: :btree
|
||||
|
||||
create_table "events", force: :cascade do |t|
|
||||
t.string "kind", limit: 255
|
||||
t.integer "eventable_id"
|
||||
|
@ -41,24 +39,22 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.integer "sequence_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["eventable_type", "eventable_id"], name: "index_events_on_eventable_type_and_eventable_id", using: :btree
|
||||
t.index ["map_id", "sequence_id"], name: "index_events_on_map_id_and_sequence_id", unique: true, using: :btree
|
||||
t.index ["map_id"], name: "index_events_on_map_id", using: :btree
|
||||
t.index ["sequence_id"], name: "index_events_on_sequence_id", using: :btree
|
||||
t.index ["user_id"], name: "index_events_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "events", ["eventable_type", "eventable_id"], name: "index_events_on_eventable_type_and_eventable_id", using: :btree
|
||||
add_index "events", ["map_id", "sequence_id"], name: "index_events_on_map_id_and_sequence_id", unique: true, using: :btree
|
||||
add_index "events", ["map_id"], name: "index_events_on_map_id", using: :btree
|
||||
add_index "events", ["sequence_id"], name: "index_events_on_sequence_id", using: :btree
|
||||
add_index "events", ["user_id"], name: "index_events_on_user_id", using: :btree
|
||||
|
||||
create_table "in_metacode_sets", force: :cascade do |t|
|
||||
t.integer "metacode_id"
|
||||
t.integer "metacode_set_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["metacode_id"], name: "index_in_metacode_sets_on_metacode_id", using: :btree
|
||||
t.index ["metacode_set_id"], name: "index_in_metacode_sets_on_metacode_set_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "in_metacode_sets", ["metacode_id"], name: "index_in_metacode_sets_on_metacode_id", using: :btree
|
||||
add_index "in_metacode_sets", ["metacode_set_id"], name: "index_in_metacode_sets_on_metacode_set_id", using: :btree
|
||||
|
||||
create_table "mappings", force: :cascade do |t|
|
||||
t.text "category"
|
||||
t.integer "xloc"
|
||||
|
@ -71,14 +67,13 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.datetime "updated_at", null: false
|
||||
t.integer "mappable_id"
|
||||
t.string "mappable_type"
|
||||
t.index ["map_id", "synapse_id"], name: "index_mappings_on_map_id_and_synapse_id", using: :btree
|
||||
t.index ["map_id", "topic_id"], name: "index_mappings_on_map_id_and_topic_id", using: :btree
|
||||
t.index ["map_id"], name: "index_mappings_on_map_id", using: :btree
|
||||
t.index ["mappable_id", "mappable_type"], name: "index_mappings_on_mappable_id_and_mappable_type", using: :btree
|
||||
t.index ["user_id"], name: "index_mappings_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "mappings", ["map_id", "synapse_id"], name: "index_mappings_on_map_id_and_synapse_id", using: :btree
|
||||
add_index "mappings", ["map_id", "topic_id"], name: "index_mappings_on_map_id_and_topic_id", using: :btree
|
||||
add_index "mappings", ["map_id"], name: "index_mappings_on_map_id", using: :btree
|
||||
add_index "mappings", ["mappable_id", "mappable_type"], name: "index_mappings_on_mappable_id_and_mappable_type", using: :btree
|
||||
add_index "mappings", ["user_id"], name: "index_mappings_on_user_id", using: :btree
|
||||
|
||||
create_table "maps", force: :cascade do |t|
|
||||
t.text "name"
|
||||
t.boolean "arranged"
|
||||
|
@ -92,10 +87,9 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.string "screenshot_content_type"
|
||||
t.integer "screenshot_file_size"
|
||||
t.datetime "screenshot_updated_at"
|
||||
t.index ["user_id"], name: "index_maps_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "maps", ["user_id"], name: "index_maps_on_user_id", using: :btree
|
||||
|
||||
create_table "messages", force: :cascade do |t|
|
||||
t.text "message"
|
||||
t.integer "user_id"
|
||||
|
@ -103,12 +97,11 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.string "resource_type"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["resource_id"], name: "index_messages_on_resource_id", using: :btree
|
||||
t.index ["resource_type"], name: "index_messages_on_resource_type", using: :btree
|
||||
t.index ["user_id"], name: "index_messages_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "messages", ["resource_id"], name: "index_messages_on_resource_id", using: :btree
|
||||
add_index "messages", ["resource_type"], name: "index_messages_on_resource_type", using: :btree
|
||||
add_index "messages", ["user_id"], name: "index_messages_on_user_id", using: :btree
|
||||
|
||||
create_table "metacode_sets", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.text "desc"
|
||||
|
@ -116,10 +109,9 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.boolean "mapperContributed"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["user_id"], name: "index_metacode_sets_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "metacode_sets", ["user_id"], name: "index_metacode_sets_on_user_id", using: :btree
|
||||
|
||||
create_table "metacodes", force: :cascade do |t|
|
||||
t.text "name"
|
||||
t.string "manual_icon"
|
||||
|
@ -141,10 +133,9 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.datetime "created_at", null: false
|
||||
t.datetime "revoked_at"
|
||||
t.string "scopes"
|
||||
t.index ["token"], name: "index_oauth_access_grants_on_token", unique: true, using: :btree
|
||||
end
|
||||
|
||||
add_index "oauth_access_grants", ["token"], name: "index_oauth_access_grants_on_token", unique: true, using: :btree
|
||||
|
||||
create_table "oauth_access_tokens", force: :cascade do |t|
|
||||
t.integer "resource_owner_id"
|
||||
t.integer "application_id"
|
||||
|
@ -154,12 +145,11 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.datetime "revoked_at"
|
||||
t.datetime "created_at", null: false
|
||||
t.string "scopes"
|
||||
t.index ["refresh_token"], name: "index_oauth_access_tokens_on_refresh_token", unique: true, using: :btree
|
||||
t.index ["resource_owner_id"], name: "index_oauth_access_tokens_on_resource_owner_id", using: :btree
|
||||
t.index ["token"], name: "index_oauth_access_tokens_on_token", unique: true, using: :btree
|
||||
end
|
||||
|
||||
add_index "oauth_access_tokens", ["refresh_token"], name: "index_oauth_access_tokens_on_refresh_token", unique: true, using: :btree
|
||||
add_index "oauth_access_tokens", ["resource_owner_id"], name: "index_oauth_access_tokens_on_resource_owner_id", using: :btree
|
||||
add_index "oauth_access_tokens", ["token"], name: "index_oauth_access_tokens_on_token", unique: true, using: :btree
|
||||
|
||||
create_table "oauth_applications", force: :cascade do |t|
|
||||
t.string "name", null: false
|
||||
t.string "uid", null: false
|
||||
|
@ -168,20 +158,18 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.string "scopes", default: "", null: false
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["uid"], name: "index_oauth_applications_on_uid", unique: true, using: :btree
|
||||
end
|
||||
|
||||
add_index "oauth_applications", ["uid"], name: "index_oauth_applications_on_uid", unique: true, using: :btree
|
||||
|
||||
create_table "stars", force: :cascade do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "map_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["map_id"], name: "index_stars_on_map_id", using: :btree
|
||||
t.index ["user_id"], name: "index_stars_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "stars", ["map_id"], name: "index_stars_on_map_id", using: :btree
|
||||
add_index "stars", ["user_id"], name: "index_stars_on_user_id", using: :btree
|
||||
|
||||
create_table "synapses", force: :cascade do |t|
|
||||
t.text "desc"
|
||||
t.text "category"
|
||||
|
@ -193,24 +181,22 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.integer "defer_to_map_id"
|
||||
t.index ["node1_id", "node1_id"], name: "index_synapses_on_node1_id_and_node1_id", using: :btree
|
||||
t.index ["node1_id"], name: "index_synapses_on_node1_id", using: :btree
|
||||
t.index ["node2_id", "node2_id"], name: "index_synapses_on_node2_id_and_node2_id", using: :btree
|
||||
t.index ["node2_id"], name: "index_synapses_on_node2_id", using: :btree
|
||||
t.index ["user_id"], name: "index_synapses_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "synapses", ["node1_id", "node1_id"], name: "index_synapses_on_node1_id_and_node1_id", using: :btree
|
||||
add_index "synapses", ["node1_id"], name: "index_synapses_on_node1_id", using: :btree
|
||||
add_index "synapses", ["node2_id", "node2_id"], name: "index_synapses_on_node2_id_and_node2_id", using: :btree
|
||||
add_index "synapses", ["node2_id"], name: "index_synapses_on_node2_id", using: :btree
|
||||
add_index "synapses", ["user_id"], name: "index_synapses_on_user_id", using: :btree
|
||||
|
||||
create_table "tokens", force: :cascade do |t|
|
||||
t.string "token"
|
||||
t.string "description"
|
||||
t.integer "user_id"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.index ["user_id"], name: "index_tokens_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "tokens", ["user_id"], name: "index_tokens_on_user_id", using: :btree
|
||||
|
||||
create_table "topics", force: :cascade do |t|
|
||||
t.text "name"
|
||||
t.text "desc"
|
||||
|
@ -229,21 +215,19 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.integer "audio_file_size"
|
||||
t.datetime "audio_updated_at"
|
||||
t.integer "defer_to_map_id"
|
||||
t.index ["metacode_id"], name: "index_topics_on_metacode_id", using: :btree
|
||||
t.index ["user_id"], name: "index_topics_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "topics", ["metacode_id"], name: "index_topics_on_metacode_id", using: :btree
|
||||
add_index "topics", ["user_id"], name: "index_topics_on_user_id", using: :btree
|
||||
|
||||
create_table "user_maps", force: :cascade do |t|
|
||||
t.integer "user_id"
|
||||
t.integer "map_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.index ["map_id"], name: "index_user_maps_on_map_id", using: :btree
|
||||
t.index ["user_id"], name: "index_user_maps_on_user_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "user_maps", ["map_id"], name: "index_user_maps_on_map_id", using: :btree
|
||||
add_index "user_maps", ["user_id"], name: "index_user_maps_on_user_id", using: :btree
|
||||
|
||||
create_table "users", force: :cascade do |t|
|
||||
t.string "name"
|
||||
t.string "email"
|
||||
|
@ -272,19 +256,17 @@ ActiveRecord::Schema.define(version: 20160820231717) do
|
|||
t.integer "image_file_size"
|
||||
t.datetime "image_updated_at"
|
||||
t.integer "generation"
|
||||
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
|
||||
end
|
||||
|
||||
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
|
||||
|
||||
create_table "webhooks", force: :cascade do |t|
|
||||
t.integer "hookable_id"
|
||||
t.string "hookable_type"
|
||||
t.string "kind", null: false
|
||||
t.string "uri", null: false
|
||||
t.text "event_types", default: [], array: true
|
||||
t.index ["hookable_type", "hookable_id"], name: "index_webhooks_on_hookable_type_and_hookable_id", using: :btree
|
||||
end
|
||||
|
||||
add_index "webhooks", ["hookable_type", "hookable_id"], name: "index_webhooks_on_hookable_type_and_hookable_id", using: :btree
|
||||
|
||||
add_foreign_key "tokens", "users"
|
||||
end
|
||||
|
|
|
@ -1,39 +1,40 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe MappingsController, type: :controller do
|
||||
let!(:mapping) { create(:mapping) }
|
||||
let(:user) { create(:user) }
|
||||
let!(:mapping) { create(:mapping, user: user) }
|
||||
let(:valid_attributes) { mapping.attributes.except('id') }
|
||||
let(:invalid_attributes) { { xloc: 0 } }
|
||||
let(:invalid_attributes) { { id: mapping.id } }
|
||||
before :each do
|
||||
sign_in
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
it 'assigns the requested mapping as @mapping' do
|
||||
get :show, id: mapping.to_param
|
||||
expect(assigns(:mapping)).to eq(mapping)
|
||||
end
|
||||
sign_in user
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
context 'with valid params' do
|
||||
it 'creates a new Mapping' do
|
||||
expect do
|
||||
post :create, mapping: valid_attributes
|
||||
post :create, params: {
|
||||
mapping: valid_attributes
|
||||
}
|
||||
end.to change(Mapping, :count).by(1)
|
||||
end
|
||||
|
||||
it 'assigns a newly created mapping as @mapping' do
|
||||
post :create, mapping: valid_attributes
|
||||
expect(assigns(:mapping)).to be_a(Mapping)
|
||||
expect(assigns(:mapping)).to be_persisted
|
||||
post :create, params: {
|
||||
mapping: valid_attributes
|
||||
}
|
||||
expect(comparable(Mapping.last)).to eq comparable(mapping)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns a newly created but unsaved mapping as @mapping' do
|
||||
post :create, mapping: invalid_attributes
|
||||
expect(assigns(:mapping)).to be_a_new(Mapping)
|
||||
post :create, params: {
|
||||
mapping: invalid_attributes
|
||||
}
|
||||
# for some reason, the first mapping is still persisted
|
||||
# TODO: fixme??
|
||||
expect(Mapping.count).to eq 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -43,23 +44,26 @@ RSpec.describe MappingsController, type: :controller do
|
|||
let(:new_attributes) { build(:mapping_random_location).attributes.except('id') }
|
||||
|
||||
it 'updates the requested mapping' do
|
||||
put :update,
|
||||
id: mapping.to_param, mapping: new_attributes
|
||||
put :update, params: {
|
||||
id: mapping.to_param, mapping: new_attributes
|
||||
}
|
||||
mapping.reload
|
||||
end
|
||||
|
||||
it 'assigns the requested mapping as @mapping' do
|
||||
put :update,
|
||||
id: mapping.to_param, mapping: valid_attributes
|
||||
expect(assigns(:mapping)).to eq(mapping)
|
||||
put :update, params: {
|
||||
id: mapping.to_param, mapping: valid_attributes
|
||||
}
|
||||
expect(Mapping.last).to eq mapping
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns the mapping as @mapping' do
|
||||
put :update,
|
||||
id: mapping.to_param, mapping: invalid_attributes
|
||||
expect(assigns(:mapping)).to eq(mapping)
|
||||
put :update, params: {
|
||||
id: mapping.to_param, mapping: invalid_attributes
|
||||
}
|
||||
expect(Mapping.last).to eq mapping
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -67,7 +71,9 @@ RSpec.describe MappingsController, type: :controller do
|
|||
describe 'DELETE #destroy' do
|
||||
it 'destroys the requested mapping' do
|
||||
expect do
|
||||
delete :destroy, id: mapping.to_param
|
||||
delete :destroy, params: {
|
||||
id: mapping.to_param
|
||||
}
|
||||
end.to change(Mapping, :count).by(-1)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,50 +5,33 @@ RSpec.describe MapsController, type: :controller do
|
|||
let(:valid_attributes) { map.attributes.except(:id) }
|
||||
let(:invalid_attributes) { { permission: :commons } }
|
||||
before :each do
|
||||
sign_in
|
||||
end
|
||||
|
||||
describe 'GET #index' do
|
||||
it 'viewable maps as @maps' do
|
||||
get :activemaps
|
||||
expect(assigns(:maps)).to eq([map])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #contains' do
|
||||
it 'returns json matching schema' do
|
||||
get :contains, id: map.to_param, format: :json
|
||||
expect(response.body).to match_json_schema(:map_contains)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
it 'assigns the requested map as @map' do
|
||||
get :show, id: map.to_param
|
||||
expect(assigns(:map)).to eq(map)
|
||||
end
|
||||
sign_in create(:user)
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
context 'with valid params' do
|
||||
it 'creates a new Map' do
|
||||
map.reload
|
||||
expect do
|
||||
post :create, valid_attributes.merge(format: :json)
|
||||
post :create, format: :json, params: {
|
||||
map: valid_attributes
|
||||
}
|
||||
end.to change(Map, :count).by(1)
|
||||
end
|
||||
|
||||
it 'assigns a newly created map as @map' do
|
||||
post :create, valid_attributes.merge(format: :json)
|
||||
expect(assigns(:map)).to be_a(Map)
|
||||
expect(assigns(:map)).to be_persisted
|
||||
post :create, format: :json, params: {
|
||||
map: valid_attributes
|
||||
}
|
||||
expect(Map.last).to eq map
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns a newly created but unsaved map as @map' do
|
||||
post :create, invalid_attributes.merge(format: :json)
|
||||
expect(assigns(:map)).to be_a_new(Map)
|
||||
post :create, format: :json, params: {
|
||||
map: invalid_attributes
|
||||
}
|
||||
expect(Map.count).to eq 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -58,24 +41,28 @@ RSpec.describe MapsController, type: :controller do
|
|||
let(:new_attributes) { { name: 'Uncool map', permission: :private } }
|
||||
|
||||
it 'updates the requested map' do
|
||||
put :update,
|
||||
id: map.to_param, map: new_attributes, format: :json
|
||||
expect(assigns(:map).name).to eq 'Uncool map'
|
||||
expect(assigns(:map).permission).to eq 'private'
|
||||
put :update, format: :json, params: {
|
||||
id: map.to_param, map: new_attributes
|
||||
}
|
||||
map.reload
|
||||
expect(map.name).to eq 'Uncool map'
|
||||
expect(map.permission).to eq 'private'
|
||||
end
|
||||
|
||||
it 'assigns the requested map as @map' do
|
||||
put :update,
|
||||
id: map.to_param, map: valid_attributes, format: :json
|
||||
expect(assigns(:map)).to eq(map)
|
||||
put :update, format: :json, params: {
|
||||
id: map.to_param, map: valid_attributes
|
||||
}
|
||||
expect(Map.last).to eq map
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns the map as @map' do
|
||||
put :update,
|
||||
id: map.to_param, map: invalid_attributes, format: :json
|
||||
expect(assigns(:map)).to eq(map)
|
||||
put :update, format: :json, params: {
|
||||
id: map.to_param, map: invalid_attributes
|
||||
}
|
||||
expect(Map.last).to eq map
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -87,7 +74,9 @@ RSpec.describe MapsController, type: :controller do
|
|||
it 'prevents deletion by non-owners' do
|
||||
unowned_map.reload
|
||||
expect do
|
||||
delete :destroy, id: unowned_map.to_param, format: :json
|
||||
delete :destroy, format: :json, params: {
|
||||
id: unowned_map.to_param
|
||||
}
|
||||
end.to change(Map, :count).by(0)
|
||||
expect(response.body).to eq ''
|
||||
expect(response.status).to eq 403
|
||||
|
@ -96,7 +85,9 @@ RSpec.describe MapsController, type: :controller do
|
|||
it 'deletes owned map' do
|
||||
owned_map.reload # ensure it's in the database
|
||||
expect do
|
||||
delete :destroy, id: owned_map.to_param, format: :json
|
||||
delete :destroy, format: :json, params: {
|
||||
id: owned_map.to_param
|
||||
}
|
||||
end.to change(Map, :count).by(-1)
|
||||
expect(response.body).to eq ''
|
||||
expect(response.status).to eq 204
|
||||
|
|
|
@ -10,43 +10,33 @@ RSpec.describe MetacodesController, type: :controller do
|
|||
describe 'GET #index' do
|
||||
it 'assigns all metacodes as @metacodes' do
|
||||
metacode.reload # ensure it's created
|
||||
get :index, {}
|
||||
get :index
|
||||
expect(Metacode.all.to_a).to eq([metacode])
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #new' do
|
||||
it 'assigns a new metacode as @metacode' do
|
||||
get :new, format: :json
|
||||
expect(assigns(:metacode)).to be_a_new(Metacode)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #edit' do
|
||||
it 'assigns the requested metacode as @metacode' do
|
||||
get :edit, id: metacode.to_param
|
||||
expect(assigns(:metacode)).to eq(metacode)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
context 'with valid params' do
|
||||
it 'creates a new Metacode' do
|
||||
metacode.reload # ensure it's present to start
|
||||
expect do
|
||||
post :create, metacode: valid_attributes
|
||||
post :create, params: {
|
||||
metacode: valid_attributes
|
||||
}
|
||||
end.to change(Metacode, :count).by(1)
|
||||
end
|
||||
|
||||
it 'has the correct attributes' do
|
||||
post :create, metacode: valid_attributes
|
||||
# expect(Metacode.last.attributes.expect(:id)).to eq(metacode.attributes.except(:id))
|
||||
expect(assigns(:metacode)).to be_a(Metacode)
|
||||
expect(assigns(:metacode)).to be_persisted
|
||||
post :create, params: {
|
||||
metacode: valid_attributes
|
||||
}
|
||||
expect(comparable(Metacode.last)).to eq(comparable(metacode))
|
||||
end
|
||||
|
||||
it 'redirects to the metacode index' do
|
||||
post :create, metacode: valid_attributes
|
||||
post :create, params: {
|
||||
metacode: valid_attributes
|
||||
}
|
||||
expect(response).to redirect_to(metacodes_url)
|
||||
end
|
||||
end
|
||||
|
@ -62,8 +52,9 @@ RSpec.describe MetacodesController, type: :controller do
|
|||
end
|
||||
|
||||
it 'updates the requested metacode' do
|
||||
put :update,
|
||||
id: metacode.to_param, metacode: new_attributes
|
||||
put :update, params: {
|
||||
id: metacode.to_param, metacode: new_attributes
|
||||
}
|
||||
metacode.reload
|
||||
expect(metacode.icon).to eq 'https://newimages.ca/cool-image.jpg'
|
||||
expect(metacode.color).to eq '#ffffff'
|
||||
|
@ -75,13 +66,17 @@ RSpec.describe MetacodesController, type: :controller do
|
|||
context 'not admin' do
|
||||
it 'denies access to create' do
|
||||
sign_in create(:user, admin: false)
|
||||
post :create, metacode: valid_attributes
|
||||
post :create, params: {
|
||||
metacode: valid_attributes
|
||||
}
|
||||
expect(response).to redirect_to root_url
|
||||
end
|
||||
|
||||
it 'denies access to update' do
|
||||
sign_in create(:user, admin: false)
|
||||
post :update, id: metacode.to_param, metacode: valid_attributes
|
||||
post :update, params: {
|
||||
id: metacode.to_param, metacode: valid_attributes
|
||||
}
|
||||
expect(response).to redirect_to root_url
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,14 +5,7 @@ RSpec.describe SynapsesController, type: :controller do
|
|||
let(:valid_attributes) { synapse.attributes.except('id') }
|
||||
let(:invalid_attributes) { { permission: :invalid_lol } }
|
||||
before :each do
|
||||
sign_in
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
it 'assigns the requested synapse as @synapse' do
|
||||
get :show, id: synapse.to_param, format: :json
|
||||
expect(assigns(:synapse)).to eq(synapse)
|
||||
end
|
||||
sign_in create(:user)
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
|
@ -20,25 +13,32 @@ RSpec.describe SynapsesController, type: :controller do
|
|||
it 'creates a new Synapse' do
|
||||
synapse.reload # ensure it's present
|
||||
expect do
|
||||
post :create, synapse: valid_attributes, format: :json
|
||||
post :create, format: :json, params: {
|
||||
synapse: valid_attributes
|
||||
}
|
||||
end.to change(Synapse, :count).by(1)
|
||||
end
|
||||
|
||||
it 'assigns a newly created synapse as @synapse' do
|
||||
post :create, synapse: valid_attributes, format: :json
|
||||
expect(assigns(:synapse)).to be_a(Synapse)
|
||||
expect(assigns(:synapse)).to be_persisted
|
||||
post :create, format: :json, params: {
|
||||
synapse: valid_attributes
|
||||
}
|
||||
expect(comparable(Synapse.last)).to eq comparable(synapse)
|
||||
end
|
||||
|
||||
it 'returns 201 CREATED' do
|
||||
post :create, synapse: valid_attributes, format: :json
|
||||
post :create, format: :json, params: {
|
||||
synapse: valid_attributes
|
||||
}
|
||||
expect(response.status).to eq 201
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'returns 422 UNPROCESSABLE ENTITY' do
|
||||
post :create, synapse: invalid_attributes, format: :json
|
||||
post :create, format: :json, params: {
|
||||
synapse: invalid_attributes
|
||||
}
|
||||
expect(response.status).to eq 422
|
||||
end
|
||||
end
|
||||
|
@ -53,8 +53,9 @@ RSpec.describe SynapsesController, type: :controller do
|
|||
end
|
||||
|
||||
it 'updates the requested synapse' do
|
||||
put :update,
|
||||
id: synapse.to_param, synapse: new_attributes, format: :json
|
||||
put :update, format: :json, params: {
|
||||
id: synapse.to_param, synapse: new_attributes
|
||||
}
|
||||
synapse.reload
|
||||
expect(synapse.desc).to eq 'My new description'
|
||||
expect(synapse.category).to eq 'both'
|
||||
|
@ -62,17 +63,19 @@ RSpec.describe SynapsesController, type: :controller do
|
|||
end
|
||||
|
||||
it 'returns 204 NO CONTENT' do
|
||||
put :update,
|
||||
id: synapse.to_param, synapse: valid_attributes, format: :json
|
||||
put :update, format: :json, params: {
|
||||
id: synapse.to_param, synapse: valid_attributes
|
||||
}
|
||||
expect(response.status).to eq 204
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns the synapse as @synapse' do
|
||||
put :update,
|
||||
id: synapse.to_param, synapse: invalid_attributes, format: :json
|
||||
expect(assigns(:synapse)).to eq(synapse)
|
||||
put :update, format: :json, params: {
|
||||
id: synapse.to_param, synapse: invalid_attributes
|
||||
}
|
||||
expect(Synapse.last).to eq synapse
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -83,12 +86,16 @@ RSpec.describe SynapsesController, type: :controller do
|
|||
it 'destroys the requested synapse' do
|
||||
synapse.reload # ensure it's present
|
||||
expect do
|
||||
delete :destroy, id: synapse.to_param, format: :json
|
||||
delete :destroy, format: :json, params: {
|
||||
id: synapse.to_param
|
||||
}
|
||||
end.to change(Synapse, :count).by(-1)
|
||||
end
|
||||
|
||||
it 'returns 204 NO CONTENT' do
|
||||
delete :destroy, id: synapse.to_param, format: :json
|
||||
delete :destroy, format: :json, params: {
|
||||
id: synapse.to_param
|
||||
}
|
||||
expect(response.status).to eq 204
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,14 +5,7 @@ RSpec.describe TopicsController, type: :controller do
|
|||
let(:valid_attributes) { topic.attributes.except('id') }
|
||||
let(:invalid_attributes) { { permission: :invalid_lol } }
|
||||
before :each do
|
||||
sign_in
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
it 'assigns the requested topic as @topic' do
|
||||
get :show, id: topic.to_param, format: :json
|
||||
expect(assigns(:topic)).to eq(topic)
|
||||
end
|
||||
sign_in create(:user)
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
|
@ -20,26 +13,33 @@ RSpec.describe TopicsController, type: :controller do
|
|||
it 'creates a new Topic' do
|
||||
topic.reload # ensure it's created
|
||||
expect do
|
||||
post :create, topic: valid_attributes, format: :json
|
||||
post :create, format: :json, params: {
|
||||
topic: valid_attributes
|
||||
}
|
||||
end.to change(Topic, :count).by(1)
|
||||
end
|
||||
|
||||
it 'assigns a newly created topic as @topic' do
|
||||
post :create, topic: valid_attributes, format: :json
|
||||
expect(assigns(:topic)).to be_a(Topic)
|
||||
expect(assigns(:topic)).to be_persisted
|
||||
post :create, format: :json, params: {
|
||||
topic: valid_attributes
|
||||
}
|
||||
expect(comparable(Topic.last)).to eq comparable(topic)
|
||||
end
|
||||
|
||||
it 'returns 201 CREATED' do
|
||||
post :create, topic: valid_attributes, format: :json
|
||||
post :create, format: :json, params: {
|
||||
topic: valid_attributes
|
||||
}
|
||||
expect(response.status).to eq 201
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns a newly created but unsaved topic as @topic' do
|
||||
post :create, topic: invalid_attributes, format: :json
|
||||
expect(assigns(:topic)).to be_a_new(Topic)
|
||||
post :create, format: :json, params: {
|
||||
topic: invalid_attributes
|
||||
}
|
||||
expect(Topic.count).to eq 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -54,8 +54,9 @@ RSpec.describe TopicsController, type: :controller do
|
|||
end
|
||||
|
||||
it 'updates the requested topic' do
|
||||
put :update,
|
||||
id: topic.to_param, topic: new_attributes, format: :json
|
||||
put :update, format: :json, params: {
|
||||
id: topic.to_param, topic: new_attributes
|
||||
}
|
||||
topic.reload
|
||||
expect(topic.name).to eq 'Cool Topic with no number'
|
||||
expect(topic.desc).to eq 'This is a cool topic.'
|
||||
|
@ -64,23 +65,26 @@ RSpec.describe TopicsController, type: :controller do
|
|||
end
|
||||
|
||||
it 'assigns the requested topic as @topic' do
|
||||
put :update,
|
||||
id: topic.to_param, topic: valid_attributes, format: :json
|
||||
expect(assigns(:topic)).to eq(topic)
|
||||
put :update, format: :json, params: {
|
||||
id: topic.to_param, topic: valid_attributes
|
||||
}
|
||||
expect(Topic.last).to eq(topic)
|
||||
end
|
||||
|
||||
it 'returns status of no content' do
|
||||
put :update,
|
||||
id: topic.to_param, topic: valid_attributes, format: :json
|
||||
put :update, format: :json, params: {
|
||||
id: topic.to_param, topic: valid_attributes
|
||||
}
|
||||
expect(response.status).to eq 204
|
||||
end
|
||||
end
|
||||
|
||||
context 'with invalid params' do
|
||||
it 'assigns the topic as @topic' do
|
||||
put :update,
|
||||
id: topic.to_param, topic: invalid_attributes, format: :json
|
||||
expect(assigns(:topic)).to eq(topic)
|
||||
put :update, format: :json, params: {
|
||||
id: topic.to_param, topic: invalid_attributes
|
||||
}
|
||||
expect(Topic.last).to eq topic
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -90,7 +94,9 @@ RSpec.describe TopicsController, type: :controller do
|
|||
it 'destroys the requested topic' do
|
||||
owned_topic.reload # ensure it's there
|
||||
expect do
|
||||
delete :destroy, id: owned_topic.to_param, format: :json
|
||||
delete :destroy, format: :json, params: {
|
||||
id: owned_topic.to_param
|
||||
}
|
||||
end.to change(Topic, :count).by(-1)
|
||||
expect(response.body).to eq ''
|
||||
expect(response.status).to eq 204
|
||||
|
|
|
@ -6,5 +6,6 @@ FactoryGirl.define do
|
|||
association :topic1, factory: :topic
|
||||
association :topic2, factory: :topic
|
||||
user
|
||||
weight 1 # todo drop this column
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
FactoryGirl.define do
|
||||
factory :topic do
|
||||
sequence(:name) { |n| "Cool Topic ##{n}" }
|
||||
permission :commons
|
||||
user
|
||||
metacode
|
||||
permission :commons
|
||||
sequence(:name) { |n| "Cool Topic ##{n}" }
|
||||
sequence(:desc) { |n| "topic desc #{n}" }
|
||||
sequence(:link) { |n| "https://metamaps.cc/maps/#{n}" }
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe MapMailer, type: :mailer do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
end
|
|
@ -1,45 +1,26 @@
|
|||
# This file is copied to spec/ when you run 'rails generate rspec:install'
|
||||
ENV['RAILS_ENV'] ||= 'test'
|
||||
require 'spec_helper'
|
||||
require File.expand_path('../../config/environment', __FILE__)
|
||||
require 'rspec/rails'
|
||||
|
||||
# Prevent database truncation if the environment is production
|
||||
if Rails.env.production?
|
||||
abort('The Rails environment is running in production mode!')
|
||||
end
|
||||
|
||||
require 'spec_helper'
|
||||
require 'rspec/rails'
|
||||
# Add additional requires below this line. Rails is not loaded until this point!
|
||||
|
||||
# require all support files
|
||||
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
|
||||
|
||||
ActiveRecord::Migration.maintain_test_schema!
|
||||
|
||||
RSpec.configure do |config|
|
||||
# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
|
||||
config.fixture_path = "#{::Rails.root}/spec/fixtures"
|
||||
|
||||
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
||||
# examples within a transaction, remove the following line or assign false
|
||||
# instead of true.
|
||||
config.use_transactional_fixtures = true
|
||||
|
||||
# RSpec Rails can automatically mix in different behaviours to your tests
|
||||
# based on their file location, for example enabling you to call `get` and
|
||||
# `post` in specs under `spec/controllers`.
|
||||
#
|
||||
# You can disable this behaviour by removing the line below, and instead
|
||||
# explicitly tag your specs with their type, e.g.:
|
||||
#
|
||||
# RSpec.describe UsersController, :type => :controller do
|
||||
# # ...
|
||||
# end
|
||||
#
|
||||
# The different available types are documented in the features, such as in
|
||||
# https://relishapp.com/rspec/rspec-rails/docs
|
||||
config.infer_spec_type_from_file_location!
|
||||
|
||||
config.include Devise::TestHelpers, type: :controller
|
||||
config.include ControllerHelpers, type: :controller
|
||||
config.include Shoulda::Matchers::ActiveModel, type: :model
|
||||
config.include Shoulda::Matchers::ActiveRecord, type: :model
|
||||
end
|
||||
|
|
|
@ -1,7 +1,3 @@
|
|||
require 'simplecov'
|
||||
require 'support/controller_helpers'
|
||||
require 'pundit/rspec'
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.expect_with :rspec do |expectations|
|
||||
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
||||
|
|
|
@ -3,24 +3,17 @@
|
|||
require 'devise'
|
||||
|
||||
module ControllerHelpers
|
||||
# rubocop:disable Metrics/AbcSize
|
||||
def sign_in(user = create(:user))
|
||||
if user.nil? # simulate unauthenticated
|
||||
allow(request.env['warden']).to(
|
||||
receive(:authenticate!).and_throw(:warden, scope: :user)
|
||||
)
|
||||
else # simulate authenticated
|
||||
allow_message_expectations_on_nil
|
||||
allow(request.env['warden']).to(
|
||||
receive(:authenticate!).and_return(user)
|
||||
)
|
||||
end
|
||||
allow(controller).to receive(:current_user).and_return(user)
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
include Devise::Test::ControllerHelpers
|
||||
end
|
||||
|
||||
def comparable(model)
|
||||
model.attributes.except('id', 'created_at', 'updated_at')
|
||||
end
|
||||
# rubocop:enable Metrics/AbcSize
|
||||
end
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.include Devise::TestHelpers, type: :controller
|
||||
config.include ControllerHelpers, type: :controller
|
||||
end
|
||||
|
|
1
spec/support/pundit.rb
Normal file
1
spec/support/pundit.rb
Normal file
|
@ -0,0 +1 @@
|
|||
require 'pundit/rspec'
|
2
spec/support/simplecov.rb
Normal file
2
spec/support/simplecov.rb
Normal file
|
@ -0,0 +1,2 @@
|
|||
require 'simplecov'
|
||||
|
Loading…
Add table
Reference in a new issue