From 721c3cf58aa42ad2103dbc7d73bbe02f440ac61e Mon Sep 17 00:00:00 2001 From: Karen Shaw Date: Fri, 4 Aug 2023 14:53:37 +0000 Subject: [PATCH] Replace file set graphQL test --- .../pipeline/actions/generate_poster_image.ex | 2 - app/test/gql/ReplaceFileSet.gql | 13 +++++ .../schema/mutation/replace_file_set_test.exs | 57 +++++++++++++++++++ 3 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 app/test/gql/ReplaceFileSet.gql create mode 100644 app/test/meadow_web/schema/mutation/replace_file_set_test.exs diff --git a/app/lib/meadow/pipeline/actions/generate_poster_image.ex b/app/lib/meadow/pipeline/actions/generate_poster_image.ex index b334f65423..f502ac8fc2 100644 --- a/app/lib/meadow/pipeline/actions/generate_poster_image.ex +++ b/app/lib/meadow/pipeline/actions/generate_poster_image.ex @@ -7,8 +7,6 @@ defmodule Meadow.Pipeline.Actions.GeneratePosterImage do alias Meadow.Repo alias Meadow.Utils.{AWS, Lambda} - import Env - use Meadow.Pipeline.Actions.Common @timeout 30_000 diff --git a/app/test/gql/ReplaceFileSet.gql b/app/test/gql/ReplaceFileSet.gql new file mode 100644 index 0000000000..6faa6980f7 --- /dev/null +++ b/app/test/gql/ReplaceFileSet.gql @@ -0,0 +1,13 @@ +#import "./FileSetFields.frag.gql" + +mutation( + $id: ID! + $coreMetadata: FileSetCoreMetadataInput! +) { + replaceFileSet( + id: $id + coreMetadata: $coreMetadata + ) { + ...FileSetFields + } +} diff --git a/app/test/meadow_web/schema/mutation/replace_file_set_test.exs b/app/test/meadow_web/schema/mutation/replace_file_set_test.exs new file mode 100644 index 0000000000..22e8fde9e7 --- /dev/null +++ b/app/test/meadow_web/schema/mutation/replace_file_set_test.exs @@ -0,0 +1,57 @@ +defmodule MeadowWeb.Schema.Mutation.ReplaceFileSetTest do + use Meadow.DataCase + use MeadowWeb.ConnCase, async: true + use Meadow.S3Case + use Wormwood.GQLCase + + load_gql(MeadowWeb.Schema, "test/gql/ReplaceFileSet.gql") + + @bucket @ingest_bucket + @key "create_file_set_test/file.tif" + @content "test/fixtures/coffee.tif" + @fixture %{bucket: @bucket, key: @key, content: File.read!(@content)} + + @tag s3: [@fixture] + test "replaceFileSet mutation updates a FileSet's metadata", _context do + file_set = file_set_fixture() + + {:ok, result} = + query_gql( + variables: %{ + "id" => file_set.id, + "coreMetadata" => %{ + "original_filename" => "file.tif", + "location" => "s3://#{@bucket}/#{@key}" + } + }, + context: gql_context() + ) + + assert result.data["replaceFileSet"] + location = get_in(result, [:data, "replaceFileSet", "coreMetadata", "location"]) + assert location == "s3://#{@bucket}/#{@key}" + end + + describe "authorization" do + @tag s3: [@fixture] + test "viewers are not authorized to replace file sets" do + file_set = file_set_fixture() + + + {:ok, result} = + query_gql( + variables: %{ + "id" => file_set.id, + "coreMetadata" => %{ + "original_filename" => "file.tif", + "location" => "s3://#{@bucket}/#{@key}" + } + }, + context: %{current_user: %{role: "User"}} + ) + + + assert %{errors: [%{message: "Forbidden", status: 403}]} = result + end + end +end