Test coverage up
parent
df46b9e6a7
commit
dd9bf1b327
|
@ -25,7 +25,7 @@ private
|
|||
|
||||
def null_device
|
||||
@null_device ||= NullDevice.new(name: 'null_device',
|
||||
uuid: '-',
|
||||
uuid: '-',
|
||||
token: '-')
|
||||
end
|
||||
|
||||
|
|
|
@ -12,10 +12,7 @@ module Api
|
|||
|
||||
# POST /api/device
|
||||
def create
|
||||
# TODO: Make a service that deletes old devices when they become 'orphans'
|
||||
if current_user.update_attributes(device: Device.create(device_params))
|
||||
render json: current_device
|
||||
end
|
||||
mutate Devices::Create.run(device_params, user: current_user)
|
||||
end
|
||||
|
||||
# PATCH/PUT /api/device
|
||||
|
@ -29,6 +26,7 @@ module Api
|
|||
|
||||
# DELETE /api/devices/1
|
||||
def destroy
|
||||
# TODO: Make a service that deletes old devices when they become 'orphans'
|
||||
if current_device.users.include?(current_user)
|
||||
current_device.destroy
|
||||
render nothing: true, status: 204
|
||||
|
|
|
@ -8,7 +8,7 @@ class NullDevice < Device
|
|||
end
|
||||
|
||||
def no(method)
|
||||
raise 'Cant call #{method} on a NullDevice'
|
||||
raise "Cant call #{method} on a NullDevice"
|
||||
end
|
||||
|
||||
def if_not_null
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
module Devices
|
||||
class Create < Mutations::Command
|
||||
using MongoidRefinements
|
||||
|
||||
required do
|
||||
model :user, class: User
|
||||
end
|
||||
|
||||
optional do
|
||||
string :name, default: 'Not set.'
|
||||
string :uuid, default: 'Not set.'
|
||||
string :token, default: 'Not set.'
|
||||
end
|
||||
|
||||
def execute
|
||||
create Device, inputs.except(:user) do |dev|
|
||||
user.update_attributes(device: dev)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,6 +4,15 @@ describe Api::DevicesController do
|
|||
|
||||
include Devise::TestHelpers
|
||||
|
||||
let(:user) { FactoryGirl.create(:user) }
|
||||
|
||||
describe '#show' do
|
||||
it 'handles deviceless requests' do
|
||||
user.update_attributes(device: nil)
|
||||
sign_in user
|
||||
get :show, {}, format: :json
|
||||
expect(json[:error]).to eq("add device to account")
|
||||
expect(response.status).to eq(404)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -20,5 +20,17 @@ describe Api::DevicesController do
|
|||
expect(device.name).to eq(fake_name)
|
||||
expect(response.status).to eq(200)
|
||||
end
|
||||
|
||||
it 'creates a new device if you dont have one' do
|
||||
user.update_attributes(device: nil)
|
||||
sign_in user
|
||||
fake_name = Faker::Name.name
|
||||
put :update, {}, format: :json
|
||||
user.reload
|
||||
expect(user.device).to be_kind_of(Device)
|
||||
[:uuid, :token, :name].each do |key|
|
||||
expect(user.device[key]).to eq('Not set.')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
# require 'spec_helper'
|
||||
describe NullDevice do
|
||||
let(:device) { NullDevice.new }
|
||||
|
||||
it 'indicates next_occurrence' do
|
||||
[:save, :save!].each do |meth| # not even once.
|
||||
expect { device.send(meth) }.to raise_error(
|
||||
"Cant call #{meth} on a NullDevice")
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue