Files
wp-graphql-woocommerce/tests/wpunit/ShippingMethodQueriesTest.php
T

115 lines
2.4 KiB
PHP
Raw Permalink Normal View History

2019-03-14 23:55:34 -04:00
<?php
use GraphQLRelay\Relay;
2019-03-21 21:43:24 -04:00
class ShippingMethodQueriesTest extends \Codeception\TestCase\WPTestCase {
private $shop_manager;
private $customer;
private $method;
private $helper;
2019-03-14 23:55:34 -04:00
public function setUp(): void {
2019-03-21 21:43:24 -04:00
parent::setUp();
2019-03-14 23:55:34 -04:00
$this->shop_manager = $this->factory->user->create( [ 'role' => 'shop_manager' ] );
$this->customer = $this->factory->user->create( [ 'role' => 'customer' ] );
$this->helper = $this->getModule( '\Helper\Wpunit' )->shipping_method();
$this->method = 'flat_rate';
2019-03-21 21:43:24 -04:00
}
2019-03-14 23:55:34 -04:00
2019-03-21 21:43:24 -04:00
// tests
public function testShippingMethodQueryAndArgs() {
$id = Relay::toGlobalId( 'shipping_method', $this->method );
$query = '
2020-01-25 12:36:47 -05:00
query( $id: ID!, $idType: ShippingMethodIdTypeEnum ) {
shippingMethod( id: $id, idType: $idType ) {
id
2020-09-16 16:32:14 -04:00
databaseId
title
description
}
}
';
/**
* Assertion One
2020-09-16 16:32:14 -04:00
*
* Test "ID" ID type.
*/
$variables = [
2020-01-25 12:36:47 -05:00
'id' => $id,
'idType' => 'ID',
];
$actual = graphql(
[
2020-01-25 12:36:47 -05:00
'query' => $query,
'variables' => $variables,
]
2020-01-25 12:36:47 -05:00
);
$expected = [ 'data' => [ 'shippingMethod' => $this->helper->print_query( $this->method ) ] ];
// use --debug flag to view.
codecept_debug( $actual );
2019-11-13 18:53:31 -05:00
$this->assertEquals( $expected, $actual );
/**
* Assertion Two
2020-09-16 16:32:14 -04:00
*
* Test "DATABASE_ID" ID type.
*/
$variables = [
2020-01-25 12:36:47 -05:00
'id' => $this->method,
'idType' => 'DATABASE_ID',
];
$actual = graphql(
[
2020-01-25 12:36:47 -05:00
'query' => $query,
'variables' => $variables,
]
2020-01-25 12:36:47 -05:00
);
$expected = [ 'data' => [ 'shippingMethod' => $this->helper->print_query( $this->method ) ] ];
// use --debug flag to view.
codecept_debug( $actual );
2019-11-13 18:53:31 -05:00
$this->assertEquals( $expected, $actual );
}
public function testShippingMethodsQuery() {
2019-04-17 14:18:35 -04:00
$wc_shipping = WC_Shipping::instance();
$methods = array_values(
2019-04-17 14:18:35 -04:00
array_map(
function( $method ) {
return [ 'id' => Relay::toGlobalId( 'shipping_method', $method->id ) ];
2019-04-17 14:18:35 -04:00
},
$wc_shipping->get_shipping_methods()
)
);
$query = '
query shippingMethodsQuery {
shippingMethods {
nodes {
id
}
}
}
';
/**
* Assertion One
2020-09-16 16:32:14 -04:00
*
* Tests query
*/
$actual = do_graphql_request( $query, 'shippingMethodQuery' );
$expected = [ 'data' => [ 'shippingMethods' => [ 'nodes' => $methods ] ] ];
// use --debug flag to view.
codecept_debug( $actual );
2019-11-13 18:53:31 -05:00
$this->assertEquals( $expected, $actual );
}
2019-03-21 21:43:24 -04:00
}