Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
W
webapp
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
This is an archived project. Repository and other project resources are read-only.
Show more breadcrumbs
leap
webapp
Commits
ae0aa02d
Unverified
Commit
ae0aa02d
authored
7 years ago
by
azul
Browse files
Options
Downloads
Patches
Plain Diff
minor: clean up account test
also ensures that created user is cleaned up even if test fails
parent
f250a11b
Branches
Branches containing commit
Tags
Tags containing commit
1 merge request
!54
Fix/8798 key errors
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
test/unit/account_test.rb
+76
-87
76 additions, 87 deletions
test/unit/account_test.rb
with
76 additions
and
87 deletions
test/unit/account_test.rb
+
76
−
87
View file @
ae0aa02d
...
@@ -8,164 +8,153 @@ class AccountTest < ActiveSupport::TestCase
...
@@ -8,164 +8,153 @@ class AccountTest < ActiveSupport::TestCase
end
end
teardown
do
teardown
do
@user
.
account
.
destroy
if
@user
&&
@user
.
persisted?
Identity
.
destroy_all_orphaned
Identity
.
destroy_all_orphaned
end
end
test
"create a new account when invited"
do
test
"create a new account when invited"
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
assert
user
.
valid?
,
"unexpected errors:
#{
user
.
errors
.
inspect
}
"
assert
@user
.
valid?
,
"unexpected errors:
#{
@user
.
errors
.
inspect
}
"
assert
user
.
persisted?
assert
@user
.
persisted?
assert
id
=
user
.
identity
assert
id
=
@user
.
identity
assert_equal
user
.
email_address
,
id
.
address
assert_equal
@user
.
email_address
,
id
.
address
assert_equal
user
.
email_address
,
id
.
destination
assert_equal
@user
.
email_address
,
id
.
destination
user
.
account
.
destroy
end
end
test
"fail to create account without invite"
do
test
"fail to create account without invite"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
user
=
Account
.
create
(
user_attributes
)
@
user
=
Account
.
create
(
user_attributes
)
assert
!
user
.
valid?
,
"user should not be valid"
assert
!
@
user
.
valid?
,
"user should not be valid"
assert
!
user
.
persisted?
,
"user should not have been saved"
assert
!
@
user
.
persisted?
,
"user should not have been saved"
assert_has_errors
user
,
invite_code:
"This is not a valid code"
assert_has_errors
@
user
,
invite_code:
"This is not a valid code"
end
end
end
end
test
"allow invite_required override"
do
test
"allow invite_required override"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
user
=
Account
.
create
(
user_attributes
,
:invite_required
=>
false
)
@user
=
Account
.
create
(
user_attributes
,
:invite_required
=>
false
)
assert
user
.
valid?
,
"unexpected errors:
#{
user
.
errors
.
inspect
}
"
assert
@user
.
valid?
,
"unexpected errors:
#{
@user
.
errors
.
inspect
}
"
assert
user
.
persisted?
,
"user should have been saved"
assert
@user
.
persisted?
,
"user should have been saved"
user
.
account
.
destroy
end
end
end
end
test
"create a new account"
do
test
"create a new account"
do
with_config
invite_required:
false
do
with_config
invite_required:
false
do
user
=
Account
.
create
(
user_attributes
)
@user
=
Account
.
create
(
user_attributes
)
assert
user
.
valid?
,
"unexpected errors:
#{
user
.
errors
.
inspect
}
"
assert
@user
.
valid?
,
"unexpected errors:
#{
@user
.
errors
.
inspect
}
"
assert
user
.
persisted?
assert
@user
.
persisted?
user
.
account
.
destroy
end
end
end
end
test
"error on reused username"
do
test
"error on reused username"
do
with_config
invite_required:
false
do
with_config
invite_required:
false
do
attributes
=
user_attributes
attributes
=
user_attributes
user
=
Account
.
create
attributes
@
user
=
Account
.
create
attributes
dup
=
Account
.
create
attributes
dup
=
Account
.
create
attributes
assert
!
dup
.
valid?
assert
!
dup
.
valid?
assert_has_errors
dup
,
login:
"has already been taken"
assert_has_errors
dup
,
login:
"has already been taken"
user
.
account
.
destroy
end
end
end
end
test
"error on invalid username"
do
test
"error on invalid username"
do
with_config
invite_required:
false
do
with_config
invite_required:
false
do
attributes
=
FactoryGirl
.
attributes_for
:user
,
login:
"a"
attributes
=
FactoryGirl
.
attributes_for
:user
,
login:
"a"
user
=
Account
.
create
attributes
@
user
=
Account
.
create
attributes
assert
!
user
.
valid?
assert
!
@
user
.
valid?
assert_has_errors
user
,
login:
"Must have at least two characters"
assert_has_errors
@
user
,
login:
"Must have at least two characters"
end
end
end
end
test
"create and remove a user account"
do
test
"create and remove a
@
user account"
do
# We keep an identity that will block the handle from being reused.
# We keep an identity that will block the handle from being reused.
assert_difference
"Identity.count"
do
assert_difference
"Identity.count"
do
assert_no_difference
"User.count"
do
assert_no_difference
"User.count"
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
user
.
account
.
destroy
@
user
.
account
.
destroy
end
end
end
end
end
end
test
"change username and create alias"
do
test
"change username and create alias"
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
old_id
=
user
.
identity
old_id
=
@
user
.
identity
old_email
=
user
.
email_address
old_email
=
@
user
.
email_address
user
.
account
.
update
(
user_attributes
)
@
user
.
account
.
update
(
user_attributes
)
user
.
reload
@
user
.
reload
old_id
.
reload
old_id
.
reload
assert
user
.
valid?
assert
@
user
.
valid?
assert
user
.
persisted?
assert
@
user
.
persisted?
assert
id
=
user
.
identity
assert
id
=
@
user
.
identity
assert
id
.
persisted?
assert
id
.
persisted?
assert_equal
user
.
email_address
,
id
.
address
assert_equal
@
user
.
email_address
,
id
.
address
assert_equal
user
.
email_address
,
id
.
destination
assert_equal
@
user
.
email_address
,
id
.
destination
assert_equal
user
.
email_address
,
old_id
.
destination
assert_equal
@
user
.
email_address
,
old_id
.
destination
assert_equal
old_email
,
old_id
.
address
assert_equal
old_email
,
old_id
.
address
user
.
account
.
destroy
end
end
test
"create recovery code if it does not exist"
do
test
"create recovery code if it does not exist"
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
user
.
account
.
update
(
:recovery_code_verifier
=>
"abc"
,
:recovery_code_salt
=>
"123"
)
@
user
.
account
.
update
(
:recovery_code_verifier
=>
"abc"
,
:recovery_code_salt
=>
"123"
)
user
.
reload
@
user
.
reload
assert_equal
"abc"
,
user
.
recovery_code_verifier
assert_equal
"abc"
,
@user
.
recovery_code_verifier
assert_equal
"123"
,
user
.
recovery_code_salt
assert_equal
"123"
,
@user
.
recovery_code_salt
user
.
account
.
destroy
end
end
test
"update recovery code that already exists"
do
test
"update recovery code that already exists"
do
user
=
Account
.
create
(
user_attributes
(
@
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
,
:invite_code
=>
@testcode
.
invite_code
,
:recovery_code_verifier
=>
"000"
,
:recovery_code_verifier
=>
"000"
,
:recovery_code_salt
=>
"111"
))
:recovery_code_salt
=>
"111"
))
user
.
account
.
update
(
:recovery_code_verifier
=>
"abc"
,
:recovery_code_salt
=>
"123"
)
@user
.
account
.
update
(
:recovery_code_verifier
=>
"abc"
,
:recovery_code_salt
=>
"123"
)
user
.
reload
@user
.
reload
assert_equal
"abc"
,
user
.
recovery_code_verifier
assert_equal
"123"
,
user
.
recovery_code_salt
user
.
account
.
destroy
assert_equal
"abc"
,
@user
.
recovery_code_verifier
assert_equal
"123"
,
@user
.
recovery_code_salt
end
end
test
"update password"
do
test
"update password"
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
user
.
account
.
update
(
:password_verifier
=>
"551A8B"
,
:password_salt
=>
"551A8B"
)
@user
.
account
.
update
(
:password_verifier
=>
"551A8B"
,
:password_salt
=>
"551A8B"
)
assert_equal
"551A8B"
,
user
.
password_verifier
assert_equal
"551A8B"
,
user
.
password_salt
user
.
account
.
destroy
assert_equal
"551A8B"
,
@user
.
password_verifier
assert_equal
"551A8B"
,
@user
.
password_salt
end
end
test
"Invite code count goes up by 1 when the invite code is entered"
do
test
"Invite code count goes up by 1 when the invite code is entered"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
@
user
=
Account
.
create
(
user_attributes
(
:invite_code
=>
@testcode
.
invite_code
))
user_code
=
InviteCode
.
find_by_invite_code
user
.
invite_code
user_code
=
InviteCode
.
find_by_invite_code
@
user
.
invite_code
user
.
save
@
user
.
save
assert
user
.
persisted?
assert
@
user
.
persisted?
assert_equal
1
,
user_code
.
invite_count
assert_equal
1
,
user_code
.
invite_count
end
end
end
end
test
"Single use invite code is destroyed when used by test user"
do
test
"Single use invite code is destroyed when used by test
@
user"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
attrs
=
user_attributes
invite_code:
@testcode
.
invite_code
attrs
=
user_attributes
invite_code:
@testcode
.
invite_code
attrs
[
:login
]
=
'test_user_'
+
attrs
[
:login
]
attrs
[
:login
]
=
'test_user_'
+
attrs
[
:login
]
user
=
Account
.
create
(
attrs
)
@
user
=
Account
.
create
(
attrs
)
user
.
save
@
user
.
save
assert
user
.
persisted?
,
user
.
errors
.
inspect
assert
@
user
.
persisted?
,
@
user
.
errors
.
inspect
assert_nil
InviteCode
.
find_by_invite_code
user
.
invite_code
assert_nil
InviteCode
.
find_by_invite_code
@
user
.
invite_code
end
end
end
end
test
"Single use invite code is destroyed when used by tmp user"
do
test
"Single use invite code is destroyed when used by tmp
@
user"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
attrs
=
user_attributes
invite_code:
@testcode
.
invite_code
attrs
=
user_attributes
invite_code:
@testcode
.
invite_code
attrs
[
:login
]
=
'tmp_user_'
+
attrs
[
:login
]
attrs
[
:login
]
=
'tmp_user_'
+
attrs
[
:login
]
user
=
Account
.
create
(
attrs
)
@
user
=
Account
.
create
(
attrs
)
user
.
save
@
user
.
save
assert
user
.
persisted?
,
user
.
errors
.
inspect
assert
@
user
.
persisted?
,
@
user
.
errors
.
inspect
assert_nil
InviteCode
.
find_by_invite_code
user
.
invite_code
assert_nil
InviteCode
.
find_by_invite_code
@
user
.
invite_code
end
end
end
end
test
"Invite code stays zero when invite code is not used"
do
test
"Invite code stays zero when invite code is not used"
do
#user = Account.create(user_attributes( :invite_code => @testcode.invite_code))
invalid_user
=
FactoryGirl
.
build
(
:user
,
:invite_code
=>
@testcode
.
invite_code
)
invalid_user
=
FactoryGirl
.
build
(
:user
,
:invite_code
=>
@testcode
.
invite_code
)
invalid_user
.
save
invalid_user
.
save
user_code
=
InviteCode
.
find_by_invite_code
invalid_user
.
invite_code
user_code
=
InviteCode
.
find_by_invite_code
invalid_user
.
invite_code
...
@@ -175,16 +164,16 @@ class AccountTest < ActiveSupport::TestCase
...
@@ -175,16 +164,16 @@ class AccountTest < ActiveSupport::TestCase
end
end
test
"disabled accounts have no cert fingerprints"
do
test
"disabled accounts have no cert fingerprints"
do
user
=
Account
.
create
(
user_attributes
)
@
user
=
Account
.
create
(
user_attributes
)
cert
=
stub
(
expiry:
1
.
month
.
from_now
,
fingerprint:
SecureRandom
.
hex
)
cert
=
stub
(
expiry:
1
.
month
.
from_now
,
fingerprint:
SecureRandom
.
hex
)
user
.
identity
.
register_cert
cert
@
user
.
identity
.
register_cert
cert
user
.
identity
.
save
@
user
.
identity
.
save
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
user
).
cert_fingerprints
.
keys
.
first
)
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
@
user
).
cert_fingerprints
.
keys
.
first
)
user
.
account
.
disable
@
user
.
account
.
disable
assert_equal
({},
Identity
.
for
(
user
).
cert_fingerprints
)
assert_equal
({},
Identity
.
for
(
@
user
).
cert_fingerprints
)
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
user
).
read_attribute
(
:disabled_cert_fingerprints
).
keys
.
first
)
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
@
user
).
read_attribute
(
:disabled_cert_fingerprints
).
keys
.
first
)
user
.
account
.
enable
@
user
.
account
.
enable
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
user
).
cert_fingerprints
.
keys
.
first
)
assert_equal
(
cert
.
fingerprint
,
Identity
.
for
(
@
user
).
cert_fingerprints
.
keys
.
first
)
end
end
# Pixelated relies on the ability to test invite codes without sending a
# Pixelated relies on the ability to test invite codes without sending a
...
@@ -192,15 +181,15 @@ class AccountTest < ActiveSupport::TestCase
...
@@ -192,15 +181,15 @@ class AccountTest < ActiveSupport::TestCase
# So we better make sure we return the appropriate errors
# So we better make sure we return the appropriate errors
test
"errors trying to create account with invite only"
do
test
"errors trying to create account with invite only"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
user
=
Account
.
create
invite_code:
@testcode
.
invite_code
@
user
=
Account
.
create
invite_code:
@testcode
.
invite_code
assert
user
.
errors
[
:invite_code
].
blank?
assert
@
user
.
errors
[
:invite_code
].
blank?
end
end
end
end
test
"errors trying to create account with invalid invite only"
do
test
"errors trying to create account with invalid invite only"
do
with_config
invite_required:
true
do
with_config
invite_required:
true
do
user
=
Account
.
create
invite_code:
"wrong_invite_code"
@
user
=
Account
.
create
invite_code:
"wrong_invite_code"
assert_has_errors
user
,
invite_code:
"This is not a valid code"
assert_has_errors
@
user
,
invite_code:
"This is not a valid code"
end
end
end
end
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment