Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Léo-Paul Géneau
gitlab-ce
Commits
e70eaf88
Commit
e70eaf88
authored
Jul 12, 2018
by
Grzegorz Bizon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve project build time setting validation
parent
66c3007c
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
8 deletions
+12
-8
app/models/project.rb
app/models/project.rb
+4
-2
spec/models/project_spec.rb
spec/models/project_spec.rb
+8
-6
No files found.
app/models/project.rb
View file @
e70eaf88
...
@@ -368,8 +368,10 @@ class Project < ActiveRecord::Base
...
@@ -368,8 +368,10 @@ class Project < ActiveRecord::Base
chronic_duration_attr
:build_timeout_human_readable
,
:build_timeout
,
default:
3600
chronic_duration_attr
:build_timeout_human_readable
,
:build_timeout
,
default:
3600
validates
:build_timeout
,
allow_nil:
true
,
validates
:build_timeout
,
allow_nil:
true
,
numericality:
{
greater_than_or_equal_to:
600
,
numericality:
{
greater_than_or_equal_to:
10
.
minutes
,
message:
'needs to be at least 10 minutes'
}
less_than:
1
.
month
,
only_integer:
true
,
message:
'needs to be beetween 10 minutes and 1 month'
}
# Returns a collection of projects that is either public or visible to the
# Returns a collection of projects that is either public or visible to the
# logged in user.
# logged in user.
...
...
spec/models/project_spec.rb
View file @
e70eaf88
...
@@ -149,23 +149,25 @@ describe Project do
...
@@ -149,23 +149,25 @@ describe Project do
it
{
is_expected
.
to
validate_presence_of
(
:name
)
}
it
{
is_expected
.
to
validate_presence_of
(
:name
)
}
it
{
is_expected
.
to
validate_uniqueness_of
(
:name
).
scoped_to
(
:namespace_id
)
}
it
{
is_expected
.
to
validate_uniqueness_of
(
:name
).
scoped_to
(
:namespace_id
)
}
it
{
is_expected
.
to
validate_length_of
(
:name
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
validate_length_of
(
:name
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
validate_presence_of
(
:path
)
}
it
{
is_expected
.
to
validate_presence_of
(
:path
)
}
it
{
is_expected
.
to
validate_length_of
(
:path
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
validate_length_of
(
:path
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
validate_length_of
(
:description
).
is_at_most
(
2000
)
}
it
{
is_expected
.
to
validate_length_of
(
:description
).
is_at_most
(
2000
)
}
it
{
is_expected
.
to
validate_length_of
(
:ci_config_path
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
validate_length_of
(
:ci_config_path
).
is_at_most
(
255
)
}
it
{
is_expected
.
to
allow_value
(
''
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
to
allow_value
(
''
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
not_to
allow_value
(
'test/../foo'
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
not_to
allow_value
(
'test/../foo'
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
not_to
allow_value
(
'/test/foo'
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
not_to
allow_value
(
'/test/foo'
).
for
(
:ci_config_path
)
}
it
{
is_expected
.
to
validate_presence_of
(
:creator
)
}
it
{
is_expected
.
to
validate_presence_of
(
:creator
)
}
it
{
is_expected
.
to
validate_presence_of
(
:namespace
)
}
it
{
is_expected
.
to
validate_presence_of
(
:namespace
)
}
it
{
is_expected
.
to
validate_presence_of
(
:repository_storage
)
}
it
{
is_expected
.
to
validate_presence_of
(
:repository_storage
)
}
it
'validates build timeout constraints'
do
is_expected
.
to
validate_numericality_of
(
:build_timeout
)
.
only_integer
.
is_greater_than_or_equal_to
(
10
.
minutes
)
.
is_less_than
(
1
.
month
)
.
with_message
(
'needs to be beetween 10 minutes and 1 month'
)
end
it
'does not allow new projects beyond user limits'
do
it
'does not allow new projects beyond user limits'
do
project2
=
build
(
:project
)
project2
=
build
(
:project
)
allow
(
project2
).
to
receive
(
:creator
).
and_return
(
double
(
can_create_project?:
false
,
projects_limit:
0
).
as_null_object
)
allow
(
project2
).
to
receive
(
:creator
).
and_return
(
double
(
can_create_project?:
false
,
projects_limit:
0
).
as_null_object
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment