Feature: Check JSON API admin interface and services and Varbase API settings As a site admin user I want to be able to check the JSON:API available interface options So that I can use them to enable or disable API service for Varbase APIs. Background: Given I am a logged in user with the "webmaster" user @check @local @development @staging @production Scenario: Check the Varbase API settings in admin configurations page When I go to "/admin/config" And I wait Then I should see "JSON:API" And I should see "Varbase API settings" @check @local @development @staging @production Scenario: Check JSON:API configurations When I go to "/admin/config/services/jsonapi" And I wait Then I should see "JSON:API" And I should see "Allowed operations" @check @local @development @staging @production Scenario: Check JSON:API Extras configurations When I go to "/admin/config/services/jsonapi/extras" And I wait Then I should see "JSON:API Extras" And I should see "api" value in the "edit-path-prefix" input element @check @local @development @staging @production Scenario: Check JSON:API Resource overrides When I go to "/admin/config/services/jsonapi/resource_types" And I wait Then I should see "JSON:API Resource overrides" And I should see "The following table shows the list of JSON:API resource types available." @check @local @development @staging @production Scenario: Check Varbase API settings and Generate keys When I go to "/admin/config/system/varbase/api" And I wait Then I should see "Varbase API settings" And the "entity_json" checkbox is checked And the "bundle_docs" checkbox is checked When I go to "/admin/config/system/varbase/api/keys" And I wait Then I should see "Path to the directory in which to store the generated keys." @check @local @development @staging @production Scenario: Check Open API settings and documentation pages When I go to "/admin/config/services/openapi" And I wait Then I should see "OpenAPI Resources" And I should see "Rest" And I should see "JSON:API" @local @development @staging @production Scenario: Upload a Media entity test for API Given I am a logged in user with the "test_site_admin" user When I go to "/media/add/image" And I wait Then I should see "Allowed types: png gif jpg jpeg." When I attach the file "flag-earth.jpg" to "edit-field-media-image-0-upload" And I wait And I press the "Save" button And I wait And I fill in "Media entity test" for "field_media_image[0][alt]" And I fill in "Media entity test" for "field_media_image[0][title]" And I fill in "Media entity test" for "name[0][value]" And I press the "Save" button And I wait Then I should see "Media entity test" @local @development @staging @production Scenario: Add a term "space" tag term for JSON:API to test. Given I am a logged in user with the "test_site_admin" user When I go to "/admin/structure/taxonomy/manage/tags/add" And I wait Then I should see "Add term" When I fill in "space" for "Name" And I press the "Save" button And I wait And I go to "/admin/structure/taxonomy/manage/tags/overview" Then I should see "Tags" And I should see "space" @javascript @check @local @development @staging @production Scenario: Check that Site Admin users can access "View JSON" and "View API Docs" entity operations Given I am a logged in user with the "test_site_admin" user When I go to "/admin/content" And I wait Then I should see "Content" And I should see the "View JSON" operation for the "Homepage" content And I should see the "View API Docs" operation for the "Homepage" content And I should see the "Edit" operation for the "Homepage" content And I should see the "Layout" operation for the "Homepage" content And I should see the "View JSON" operation for the "Blog" content And I should see the "View API Docs" operation for the "Blog" content When I go to "/admin/content/media" And I wait Then I should see "Media" And I should see the "View JSON" operation for the "Media entity test" media And I should see the "View API Docs" operation for the "Media entity test" media And I should see the "Edit" operation for the "Media entity test" media When I go to "/admin/structure/taxonomy/manage/tags/overview" And I wait Then I should see "Tags" And I should see "space" And I should not see the "View JSON" operation for the "space" term And I should not see the "View API Docs" operation for the "space" term When I go to "/admin/structure/entityqueue" And I wait Then I should see "Entityqueues" And I should not see the "View JSON" operation for the "Media Hero Slider" entity And I should not see the "View API Docs" operation for the "Media Hero Slider" entity But I should not see the "Edit items" operation for the "Media Hero Slider" entity @javascript @check @local @development @staging @production Scenario: Check that Content Admin users can not access "View JSON" and "View API Docs" entity operations Given I am a logged in user with the "test_content_admin" user When I go to "/admin/content" And I wait Then I should see "Content" And I should not see the "View JSON" operation for the "Homepage" content And I should not see the "View API Docs" operation for the "Homepage" content But I should see the "Edit" operation for the "Homepage" content And I should see the "Layout" operation for the "Homepage" content When I go to "/admin/content/media" And I wait Then I should see "Media" And I should not see the "View JSON" operation for the "Media entity test" media And I should not see the "View API Docs" operation for the "Media entity test" media But I should see the "Edit" operation for the "Media entity test" media When I go to "/admin/structure/taxonomy/manage/tags/overview" And I wait Then I should see "Tags" And I should see "space" And I should not see the "View JSON" operation for the "space" term And I should not see the "View API Docs" operation for the "space" term When I go to "/admin/structure/entityqueue" And I wait Then I should see "Entityqueues" And I should not see the "View JSON" operation for the "Media Hero Slider" entity And I should not see the "View API Docs" operation for the "Media Hero Slider" entity But I should not see the "Edit items" operation for the "Media Hero Slider" entity @javascript @check @local @development @staging @production Scenario: Check that Editor users can access "View JSON" and "View API Docs" entity operations Given I am a logged in user with the "test_editor" user When I go to "/admin/content" And I wait Then I should see "Content" And I should not see the "View JSON" operation for the "Homepage" content And I should not see the "View API Docs" operation for the "Homepage" content But I should see the "Edit" operation for the "Homepage" content And I should see the "Layout" operation for the "Homepage" content When I go to "/admin/content/media" And I wait Then I should see "Media" And I should not see the "View JSON" operation for the "Media entity test" media And I should not see the "View API Docs" operation for the "Media entity test" media But I should see the "Edit" operation for the "Media entity test" media When I go to "/admin/structure/taxonomy/manage/tags/overview" And I wait Then I should see "Tags" And I should see "space" And I should not see the "View JSON" operation for the "space" term And I should not see the "View API Docs" operation for the "space" term