Skip to content

Commit

Permalink
fix properties import (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
gimmyxd authored Jun 7, 2024
1 parent c61ff4e commit 373dcd8
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
8 changes: 8 additions & 0 deletions lib/aserto/directory/v3/importer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@ module Importer
# )
def import(data)
data.map! do |value|
if value.dig(:object, :properties)
require "google/protobuf/well_known_types"

value[:object][:properties] = Google::Protobuf::Struct.from_hash(
value[:object][:properties].transform_keys(&:to_s)
)
end

Aserto::Directory::Importer::V3::ImportRequest.new(value)
end
operation = importer.import(data, return_op: true)
Expand Down
34 changes: 32 additions & 2 deletions spec/integration/directory_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,8 @@
directory.import(
[

{ op_code: 1, object: { id: "import-user", type: "user" } },
{ op_code: 1, object: { id: "import-user", type: "user", properties: { email: "[email protected]" } } },
{ op_code: 1, object: { id: "import-user2", type: "user" } },
{ op_code: 1, object: { id: "import-group", type: "group" } },
{
op_code: 1,
Expand All @@ -289,10 +290,39 @@
end.not_to raise_error
end

it "imports delete object" do
expect do
directory.import(
[
{ op_code: 2, object: { id: "import-user2", type: "user" } }

]
)
end.not_to raise_error
end

it "raises error when getting a deleted object after import" do
expect do
directory.get_object(
object_type: "user",
object_id: "import-user2"
)
end.to raise_error(GRPC::NotFound)
end

it "exports objects" do
expect(directory.export(data_type: :objects).length).to eq(2)
end

it "gets object properties" do
user = directory.get_object(
object_type: "user",
object_id: "import-user"
).result

expect(user.properties.to_h).to eq({ "email" => "[email protected]" })
end

it "exports relations" do
expect(directory.export(data_type: :relations).length).to eq(1)
end
Expand Down Expand Up @@ -332,7 +362,7 @@
end.not_to raise_error
end

it "raises error when getting a deleted object after import" do
it "raises error when getting a deleted object after" do
expect do
directory.get_object(
object_type: "user",
Expand Down

0 comments on commit 373dcd8

Please sign in to comment.