Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
heptapod
heptapod
Commits
4d138fe36cc7
Commit
18d3b38e
authored
Mar 11, 2016
by
James Lopez
Browse files
project members: fixed a few issues. Specs now passing
parent
59dd5ff8080c
Changes
2
Hide whitespace changes
Inline
Side-by-side
app/services/projects/import_export/members_mapper.rb
View file @
4d138fe3
...
...
@@ -30,13 +30,14 @@ def project_member_map
def
assign_member
(
existing_user
,
member
)
member
[
'user'
]
=
existing_user
project_member
=
ProjectMember
.
new
(
member_hash
(
member
))
@project_member_map
[
member
[
'id'
]
]
=
project_member
if
project_member
.
save
@project_member_map
[
existing_user
.
id
]
=
project_member
if
project_member
.
save
end
def
member_hash
(
member
)
member
.
except
(
'id'
).
merge
(
source_id:
@project_id
)
end
#TODO: If default, then we need to leave a comment 'Comment by <original username>' on comments
def
default_project_member
@default_project_member
||=
begin
...
...
spec/services/projects/import_export/members_mapper_spec.rb
View file @
4d138fe3
...
...
@@ -6,21 +6,27 @@
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
:public
,
name:
'searchable_project'
)
}
let
(
:user2
)
{
create
(
:user
)
}
let
(
:exported_members
)
{
[
{
"id"
=>
2
,
"access_level"
=>
40
,
"source_id"
=>
14
,
"source_type"
=>
"Project"
,
"user_id"
=>
19
,
"notification_level"
=>
3
,
"created_at"
=>
"2016-03-11T10:21:44.822Z"
,
"updated_at"
=>
"2016-03-11T10:21:44.822Z"
,
"created_by_id"
=>
nil
,
"invite_email"
=>
nil
,
"invite_token"
=>
nil
,
"invite_accepted_at"
=>
nil
,
"user"
=>
{
"email"
=>
user2
.
email
,
"username"
=>
user2
.
username
}
}]
}
let
(
:exported_members
)
do
[{
"id"
=>
2
,
"access_level"
=>
40
,
"source_id"
=>
14
,
"source_type"
=>
"Project"
,
"user_id"
=>
19
,
"notification_level"
=>
3
,
"created_at"
=>
"2016-03-11T10:21:44.822Z"
,
"updated_at"
=>
"2016-03-11T10:21:44.822Z"
,
"created_by_id"
=>
nil
,
"invite_email"
=>
nil
,
"invite_token"
=>
nil
,
"invite_accepted_at"
=>
nil
,
"user"
=>
{
"email"
=>
user2
.
email
,
"username"
=>
user2
.
username
}
}]
end
let
(
:members_mapper
)
do
Projects
::
ImportExport
::
MembersMapper
.
new
(
...
...
@@ -28,15 +34,15 @@
end
it
'maps a project member'
do
expect
(
project_member_
map
_id
(
user2
.
id
)).
to
eq
(
user2
.
id
)
expect
(
project_member_
user
_id
(
user2
.
id
)).
to
eq
(
user2
.
id
)
end
it
'defaults to importer project member if it does not exist'
do
expect
(
project_member_
map
_id
(
-
1
)).
to
eq
(
user
.
id
)
expect
(
project_member_
user
_id
(
-
1
)).
to
eq
(
user
.
id
)
end
end
def
project_member_
map
_id
(
id
)
members_mapper
.
map
[
id
]
[
'id'
]
def
project_member_
user
_id
(
id
)
members_mapper
.
map
[
id
]
.
user
.
id
end
end
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