Files
old-v2-backend/wordpress/wp-content/plugins/wp-graphql/tests/wpunit/PluginObjectQueriesTest.php
2018-06-25 00:00:37 +02:00

123 lines
2.5 KiB
PHP
Executable File

<?php
class PluginObjectQueriesTest extends \Codeception\TestCase\WPTestCase {
public function setUp() {
parent::setUp();
}
public function tearDown() {
parent::tearDown();
}
/**
* testPluginQuery
*
* This tests creating a single plugin with data and retrieving said plugin via a GraphQL query
*
* @since 0.0.5
*/
public function testPluginQuery() {
/**
* Create the global ID based on the plugin_type and the created $id
*/
$global_id = \GraphQLRelay\Relay::toGlobalId( 'plugin', 'Hello Dolly' );
/**
* Create the query string to pass to the $query
*/
$query = "
query {
plugin(id: \"{$global_id}\") {
author
authorUri
description
id
name
pluginUri
version
}
}";
/**
* Run the GraphQL query
*/
$actual = do_graphql_request( $query );
/**
* Establish the expectation for the output of the query
*/
$expected = [
'data' => [
'plugin' => [
'author' => 'Matt Mullenweg',
'authorUri' => 'http://ma.tt/',
'description' => 'This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page.',
'id' => $global_id,
'name' => 'Hello Dolly',
'pluginUri' => 'http://wordpress.org/plugins/hello-dolly/',
'version' => '1.6',
],
],
];
$this->assertEquals( $expected, $actual );
}
/**
* testPluginQueryWherePluginDoesNotExist
*
* Tests a query for non existant plugin.
*
* @since 0.0.5
*/
public function testPluginQueryWherePluginDoesNotExist() {
/**
* Create the global ID based on the plugin_type and the created $id
*/
$global_id = \GraphQLRelay\Relay::toGlobalId( 'plugin', 'doesNotExist' );
/**
* Create the query string to pass to the $query
*/
$query = "
query {
plugin(id: \"{$global_id}\") {
version
}
}";
/**
* Run the GraphQL query
*/
$actual = do_graphql_request( $query );
/**
* Establish the expectation for the output of the query
*/
$expected = [
'data' => [
'plugin' => null,
],
'errors' => [
[
'message' => 'No plugin was found with the name doesNotExist',
'locations' => [
[
'line' => 3,
'column' => 4,
],
],
'path' => [
'plugin',
],
'category' => 'user',
],
],
];
$this->assertEquals( $expected, $actual );
}
}