Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F324245
hosts_controller_spec.rb
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Sun, Nov 24, 5:31 PM
Size
3 KB
Mime Type
text/x-ruby
Expires
Tue, Nov 26, 5:31 PM (1 d, 3 h)
Engine
blob
Format
Raw Data
Handle
156100
Attached To
rARCHIVING archiving
hosts_controller_spec.rb
View Options
require
'spec_helper'
describe
HostsController
do
let
(
:user
)
{
FactoryGirl
.
create
(
:user
)
}
before
{
controller
.
stub
(
:current_user
)
{
user
}
}
describe
'GET #new'
do
before
{
get
:new
}
it
'initializes a host'
do
expect
(
assigns
(
:host
))
.
to
be
end
it
'renders'
do
expect
(
response
)
.
to
render_template
(
:new
)
end
end
describe
'PATCH #update'
do
let!
(
:host
)
{
FactoryGirl
.
create
(
:host
)
}
before
{
host
.
users
<<
user
}
context
'with valid params'
do
let
(
:params
)
do
{
id
:
host
.
id
,
host
:
{
port
:
9999
}
}
end
it
'updates the host'
do
expect
{
patch
:update
,
params
}
.
to
change
{
host
.
reload
.
port
}
.
to
(
9999
)
end
it
'redirects to host_show'
do
patch
:update
,
params
expect
(
response
)
.
to
redirect_to
(
host_path
(
host
))
end
end
context
'with fqdn in params'
do
let
(
:params
)
do
{
id
:
host
.
id
,
host
:
{
fqdn
:
'another.host.gr'
}
}
end
it
'does not update the host'
do
expect
{
patch
:update
,
params
}
.
to_not
change
{
host
.
reload
.
fqdn
}
end
it
'renders the edit page'
do
patch
:update
,
params
expect
(
response
)
.
to
render_template
(
:edit
)
end
end
end
describe
'POST #create'
do
context
'with valid params'
do
before
{
FactoryGirl
.
create
(
:user
,
:admin
)
}
let
(
:params
)
do
{
host
:
FactoryGirl
.
build
(
:host
)
.
attributes
.
symbolize_keys
.
slice
(
:fqdn
,
:port
)
}
end
it
'creates the host'
do
expect
{
post
:create
,
params
}
.
to
change
{
Host
.
count
}
.
by
(
1
)
end
it
'redirects to the host\'s simple config'
do
post
:create
,
params
expect
(
response
)
.
to
redirect_to
(
new_host_simple_config_path
(
Host
.
last
))
end
it
'assigns the host to the user'
do
expect
{
post
:create
,
params
}
.
to
change
{
user
.
hosts
(
true
)
.
count
}
.
from
(
0
)
.
to
(
1
)
end
end
context
'with invalid params'
do
let
(
:params
)
do
{
host
:
FactoryGirl
.
build
(
:host
)
.
attributes
.
symbolize_keys
.
slice
(
:port
)
}
end
before
{
post
:create
,
params
}
it
'initializes a host with errors'
do
expect
(
assigns
(
:host
))
.
to
be
end
it
'renders :new'
do
expect
(
response
)
.
to
render_template
(
:new
)
end
end
end
describe
'POST #submit_config'
do
let
(
:host
)
{
FactoryGirl
.
create
(
:host
,
:configured
)
}
let
(
:params
)
{
{
id
:
host
.
id
}
}
before
{
host
.
users
<<
user
}
it
'redirects to root'
do
post
:submit_config
,
params
expect
(
response
)
.
to
redirect_to
(
host_path
(
host
))
end
it
'calls submit_config_to_bacula on host'
do
Host
.
any_instance
.
should_receive
(
:dispatch_to_bacula
)
post
:submit_config
,
params
end
end
describe
'DELETE #revoke'
do
let
(
:host
)
{
FactoryGirl
.
create
(
:host
,
status
:
Host
::
STATUSES
[
:for_removal
]
)
}
let
(
:params
)
{
{
id
:
host
.
id
}
}
before
{
host
.
users
<<
user
}
it
'redirects to root'
do
delete
:revoke
,
params
expect
(
response
)
.
to
redirect_to
(
root_path
)
end
it
'calls remove_from_bacula on host'
do
Host
.
any_instance
.
should_receive
(
:remove_from_bacula
)
delete
:revoke
,
params
end
end
end
Event Timeline
Log In to Comment