Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert HTTP method to uppercase #2712

Closed
wants to merge 68 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
7e33003
Fixed typos
pborreli Feb 2, 2019
bf1cb5e
Merge pull request #2486 from pborreli/typos
dunglas Feb 3, 2019
e38fd98
Use framework expression language service instead of custom one
Toflar Oct 29, 2018
59039a5
Fixed tests
Toflar Nov 6, 2018
22d350d
phpunit ^7.5.4 and bump cs fixer
soyuka Feb 11, 2019
e1f92d0
Merge pull request #2289 from Toflar/use-security-expression-language
soyuka Feb 11, 2019
7331f27
Add a TypeInterface to manage custom types
alanpoulain Feb 3, 2019
2bb6f95
Merge pull request #2492 from alanpoulain/graphql-custom-types
soyuka Feb 11, 2019
3a82243
Merge branch '2.4'
dunglas Feb 14, 2019
cb4e16b
GraphQL: Prevent an error when the type factory is null
dunglas Feb 12, 2019
d96b52a
Merge pull request #2510 from dunglas/fix_2492
soyuka Feb 15, 2019
57e4964
Reorder normalizers (tiny perf improvement)
dunglas Apr 30, 2018
a508fec
Improve max join limit error
dunglas Jun 5, 2018
d2b1b96
Merge pull request #2524 from soyuka/merging
soyuka Feb 15, 2019
1350a3c
Merge branch '2.4' into merge
soyuka Feb 19, 2019
c80d493
Merge pull request #2531 from soyuka/merge
soyuka Feb 19, 2019
472609c
Enable the pagination via cursor (no page-based pagination)
sroze May 1, 2018
f1e80f4
Add paginationViaCursor to ApiResource
soyuka Feb 20, 2019
d531495
Merge pull request #2532 from soyuka/sroze-cursor-pagination
soyuka Feb 20, 2019
a58b37c
Merge remote-tracking branch 'upstream/2.4' into merge
soyuka Feb 26, 2019
bf867e0
Merge pull request #2557 from soyuka/merge
soyuka Feb 26, 2019
e2a7194
Merge branch '2.4'
dunglas Feb 26, 2019
9eb6662
[GraphQl] Better pagination support (#2142)
Feb 27, 2019
9057d49
Cleanup configuration
norkunas Mar 1, 2019
d86f956
Merge pull request #2568 from norkunas/cleanup-configuration
soyuka Mar 1, 2019
2ea50f1
Configure formats provider interface autowiring alias
norkunas Mar 1, 2019
ea153d1
Merge pull request #2567 from norkunas/formats-provider-alias
soyuka Mar 6, 2019
b3bd652
[GraphQL] Avoid to call serialize in ItemNormalizer (#2576)
alanpoulain Mar 6, 2019
19c08e0
Update the ExistsFilter behavior (#2243)
epourail Mar 6, 2019
3d780a4
Merge remote-tracking branch 'upstream/2.4' into merge
soyuka Mar 11, 2019
5c1e9d5
Fix tests
soyuka Mar 12, 2019
aeecbbb
Merge pull request #2599 from soyuka/merge
soyuka Mar 13, 2019
ebc98da
Add a command for printing a SDL schema (#2600)
alanpoulain Mar 13, 2019
4a764b0
Merge remote-tracking branch 'upstream/2.4' into merge
soyuka Mar 22, 2019
d0bde7e
[GraphQL] Add custom queries (#2445)
lukasluecke Mar 24, 2019
9f16cec
Merge remote-tracking branch 'upstream/master' into merge
soyuka Mar 25, 2019
74bfbef
Fix phpstan
soyuka Mar 25, 2019
345612c
Merge pull request #2638 from soyuka/merge
soyuka Mar 25, 2019
8e1ee34
Remove a BC break introduced by #2243
meyerbaptiste Mar 22, 2019
6980627
Merge pull request #2640 from meyerbaptiste/fix_bc_break
soyuka Mar 26, 2019
ca5326d
Merge remote-tracking branch 'upstream/2.4' into merge
soyuka Mar 26, 2019
a72f501
filterProperty False positive due to deprecation
soyuka Mar 26, 2019
7f28ff9
Merge pull request #2652 from soyuka/merge
soyuka Mar 26, 2019
bcffdca
Manage custom queries by using the resolvers (#2655)
alanpoulain Mar 28, 2019
bbc169d
reuse $baseUrl in computeDoc
Engerim Mar 29, 2019
21a2f94
*remove bracket
Engerim Mar 29, 2019
ef76e6b
Merge pull request #2670 from Engerim/patch-2
soyuka Mar 31, 2019
ea73061
Add custom mutations to GraphQL (#2447)
raoulclais Apr 2, 2019
102d6cf
Merge remote-tracking branch 'upstream/2.4'
soyuka Apr 4, 2019
be932e9
Merge pull request #2689 from soyuka/master
soyuka Apr 4, 2019
8dc2421
GraphQl: Use compiler pass only when enabled
soyuka Apr 4, 2019
ea2ea45
Merge pull request #2691 from soyuka/fix-graphql
soyuka Apr 5, 2019
425283e
Added support for pagination parameters in subresource docs
RonRademaker Apr 4, 2018
5f7eaf3
Merge pull request #2698 from Toflar/subresource-pagination
soyuka Apr 6, 2019
d94c1a6
Try to be more intelligent in determining property writable/readable …
bendavies May 24, 2018
e03b925
Merge pull request #1974 from bendavies/serializer-property-metadata-…
soyuka Apr 6, 2019
6d657b8
SearchFiler: improve association's id management
Apr 11, 2018
8f57f08
Merge pull request #1844 from Simperfit/feature/improve-ids-managemen…
soyuka Apr 6, 2019
8697c96
Fix my derp
antograssiot Apr 6, 2019
cf11380
Merge pull request #2701 from antograssiot/fix-my-derp
soyuka Apr 6, 2019
89e6838
Fix typos
vincentchalamon Apr 6, 2019
a1da24c
Merge pull request #2702 from vincentchalamon/fix-typo
soyuka Apr 6, 2019
d77d61c
Merge branch '2.4' into merge-2.4
soyuka Apr 6, 2019
d5dc43f
MongoDb: as its experimental do not invalid constructor args
soyuka Apr 6, 2019
d442702
fix tests readableLink and graphql
soyuka Apr 7, 2019
44a686c
Merge pull request #2704 from soyuka/merge-2.4
soyuka Apr 7, 2019
90f422f
Fix denormalizationContext (#2711)
alanpoulain Apr 7, 2019
637e4c2
Convert HTTP method to uppercase
lyrixx Apr 8, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 2.5.0 beta 1

* GraphQL: Add support for custom types

## 2.4.2

* Fix a dependency injection injection problem in `FilterEagerLoadingExtension`
Expand Down Expand Up @@ -105,7 +109,7 @@
* Allow to set the HTTP status code to send to the client through the `status` attribute
* Add support for the `Sunset` HTTP header using the `sunset` attribute
* Set the `Content-Location` and `Location` headers when appropriate for better RFC7231 conformance
* Display the matching data provider and data persiter in the debug panel
* Display the matching data provider and data persister in the debug panel
* GraphQL: improve performance by lazy loading types
* Add the `api_persist` request attribute to enable or disable the `WriteListener`
* Allow to set a default context in all normalizers
Expand Down
4 changes: 4 additions & 0 deletions behat.yml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ default:
suites:
default:
contexts:
- 'CommandContext'
- 'DoctrineContext':
doctrine: '@doctrine'
- 'HttpHeaderContext'
Expand All @@ -21,6 +22,7 @@ default:
tags: '~@postgres&&~@mongodb&&~@elasticsearch'
postgres:
contexts:
- 'CommandContext'
- 'DoctrineContext':
doctrine: '@doctrine'
- 'HttpHeaderContext'
Expand All @@ -40,6 +42,7 @@ default:
tags: '~@sqlite&&~@mongodb&&~@elasticsearch'
mongodb:
contexts:
- 'CommandContext'
- 'DoctrineContext':
doctrine: '@doctrine_mongodb'
- 'HttpHeaderContext'
Expand Down Expand Up @@ -89,6 +92,7 @@ coverage:
suites:
default:
contexts:
- 'CommandContext'
- 'DoctrineContext':
doctrine: '@doctrine'
- 'HttpHeaderContext'
Expand Down
105 changes: 105 additions & 0 deletions features/bootstrap/CommandContext.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
<?php

/*
* This file is part of the API Platform project.
*
* (c) Kévin Dunglas <dunglas@gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

declare(strict_types=1);

use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
use Behat\Symfony2Extension\Context\KernelAwareContext;
use PHPUnit\Framework\Assert;
use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Tester\CommandTester;
use Symfony\Component\HttpKernel\KernelInterface;

/**
* Context for Symfony commands.
*
* @author Alan Poulain <contact@alanpoulain.eu>
*/
final class CommandContext implements KernelAwareContext
{
/**
* @var KernelInterface
*/
private $kernel;

/**
* @var Application
*/
private $application;

/**
* @var CommandTester
*/
private $commandTester;

/**
* @When I run the command :command
*/
public function iRunTheCommand(string $command): void
{
$command = $this->getApplication()->find($command);

$this->getCommandTester($command)->execute([]);
}

/**
* @When I run the command :command with options:
*/
public function iRunTheCommandWithOptions(string $command, TableNode $options): void
{
$command = $this->getApplication()->find($command);

$this->getCommandTester($command)->execute($options->getRowsHash());
}

/**
* @Then the command output should be:
*/
public function theCommandOutputShouldBe(PyStringNode $expectedOutput): void
{
Assert::assertEquals($expectedOutput->getRaw(), $this->commandTester->getDisplay());
}

/**
* @Then the command output should contain:
*/
public function theCommandOutputShouldContain(PyStringNode $expectedOutput): void
{
$expectedOutput = str_replace('###', '"""', $expectedOutput->getRaw());

Assert::assertContains($expectedOutput, $this->commandTester->getDisplay());
}

public function setKernel(KernelInterface $kernel): void
{
$this->kernel = $kernel;
}

public function getApplication(): Application
{
if (null !== $this->application) {
return $this->application;
}

$this->application = new Application($this->kernel);

return $this->application;
}

private function getCommandTester(Command $command): CommandTester
{
$this->commandTester = new CommandTester($command);

return $this->commandTester;
}
}
66 changes: 66 additions & 0 deletions features/bootstrap/DoctrineContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyAggregateOffer as DummyAggregateOfferDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyCar as DummyCarDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyCarColor as DummyCarColorDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyCustomMutation as DummyCustomMutationDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyCustomQuery as DummyCustomQueryDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyDate as DummyDateDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyDtoCustom as DummyDtoCustomDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\DummyDtoNoInput as DummyDtoNoInputDocument;
Expand Down Expand Up @@ -50,6 +52,7 @@
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\RelatedToDummyFriend as RelatedToDummyFriendDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\RelationEmbedder as RelationEmbedderDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\SecuredDummy as SecuredDummyDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\SoMany as SoManyDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\ThirdLevel as ThirdLevelDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\User as UserDocument;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\Address;
Expand All @@ -64,6 +67,8 @@
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyAggregateOffer;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCar;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCarColor;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCustomMutation;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyCustomQuery;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyDate;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyDtoCustom;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\DummyDtoNoInput;
Expand Down Expand Up @@ -95,6 +100,7 @@
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\RelatedToDummyFriend;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\RelationEmbedder;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\SecuredDummy;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\SoMany;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\ThirdLevel;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\User;
use ApiPlatform\Core\Tests\Fixtures\TestBundle\Entity\UuidIdentifierDummy;
Expand Down Expand Up @@ -165,6 +171,21 @@ public function thereAreDummyObjects(int $nb)
$this->manager->flush();
}

/**
* @Given there are :nb of these so many objects
*/
public function thereAreOfTheseSoManyObjects(int $nb)
{
for ($i = 1; $i <= $nb; ++$i) {
$dummy = $this->isOrm() ? new SoMany() : new SoManyDocument();
$dummy->content = 'Many #'.$i;

$this->manager->persist($dummy);
}

$this->manager->flush();
}

/**
* @Given there are :nb foo objects with fake names
*/
Expand Down Expand Up @@ -402,6 +423,35 @@ public function thereAreDummyDtoNoOutputObjects(int $nb)
$this->manager->flush();
}

/**
* @Given there are :nb dummyCustomQuery objects
*/
public function thereAreDummyCustomQueryObjects(int $nb)
{
for ($i = 1; $i <= $nb; ++$i) {
$dummyCustomQuery = $this->buildDummyCustomQuery();

$this->manager->persist($dummyCustomQuery);
}

$this->manager->flush();
}

/**
* @Given there are :nb dummyCustomMutation objects
*/
public function thereAreDummyCustomMutationObjects(int $nb)
{
for ($i = 1; $i <= $nb; ++$i) {
$customMutationDummy = $this->buildDummyCustomMutation();
$customMutationDummy->setOperandA(3);

$this->manager->persist($customMutationDummy);
}

$this->manager->flush();
}

/**
* @Given there are :nb dummy objects with JSON and array data
*/
Expand Down Expand Up @@ -1320,6 +1370,22 @@ private function buildDummyDtoNoOutput()
return $this->isOrm() ? new DummyDtoNoOutput() : new DummyDtoNoOutputDocument();
}

/**
* @return DummyCustomQuery|DummyCustomQueryDocument
*/
private function buildDummyCustomQuery()
{
return $this->isOrm() ? new DummyCustomQuery() : new DummyCustomQueryDocument();
}

/**
* @return DummyCustomMutation|DummyCustomMutationDocument
*/
private function buildDummyCustomMutation()
{
return $this->isOrm() ? new DummyCustomMutation() : new DummyCustomMutationDocument();
}

/**
* @return DummyFriend|DummyFriendDocument
*/
Expand Down
26 changes: 16 additions & 10 deletions features/doctrine/date_filter.feature
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ Feature: Date filter on collections
},
"hydra:search": {
"@type": "hydra:IriTemplate",
"hydra:template": "/dummies{?dummyBoolean,relatedDummy.embeddedDummy.dummyBoolean,dummyDate[before],dummyDate[strictly_before],dummyDate[after],dummyDate[strictly_after],relatedDummy.dummyDate[before],relatedDummy.dummyDate[strictly_before],relatedDummy.dummyDate[after],relatedDummy.dummyDate[strictly_after],description[exists],relatedDummy.name[exists],dummyBoolean[exists],relatedDummy[exists],dummyFloat,dummyFloat[],dummyPrice,dummyPrice[],order[id],order[name],order[description],order[relatedDummy.name],order[relatedDummy.symfony],order[dummyDate],dummyFloat[between],dummyFloat[gt],dummyFloat[gte],dummyFloat[lt],dummyFloat[lte],dummyPrice[between],dummyPrice[gt],dummyPrice[gte],dummyPrice[lt],dummyPrice[lte],id,id[],name,alias,description,relatedDummy.name,relatedDummy.name[],relatedDummies,relatedDummies[],dummy,relatedDummies.name,relatedDummy.thirdLevel.level,relatedDummy.thirdLevel.level[],relatedDummy.thirdLevel.fourthLevel.level,relatedDummy.thirdLevel.fourthLevel.level[],relatedDummy.thirdLevel.badFourthLevel.level,relatedDummy.thirdLevel.badFourthLevel.level[],relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level,relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level[],properties[]}",
"hydra:template": "/dummies{?dummyBoolean,relatedDummy.embeddedDummy.dummyBoolean,dummyDate[before],dummyDate[strictly_before],dummyDate[after],dummyDate[strictly_after],relatedDummy.dummyDate[before],relatedDummy.dummyDate[strictly_before],relatedDummy.dummyDate[after],relatedDummy.dummyDate[strictly_after],exists[alias],exists[description],exists[relatedDummy.name],exists[dummyBoolean],exists[relatedDummy],dummyFloat,dummyFloat[],dummyPrice,dummyPrice[],order[id],order[name],order[description],order[relatedDummy.name],order[relatedDummy.symfony],order[dummyDate],dummyFloat[between],dummyFloat[gt],dummyFloat[gte],dummyFloat[lt],dummyFloat[lte],dummyPrice[between],dummyPrice[gt],dummyPrice[gte],dummyPrice[lt],dummyPrice[lte],id,id[],name,alias,description,relatedDummy.name,relatedDummy.name[],relatedDummies,relatedDummies[],dummy,relatedDummies.name,relatedDummy.thirdLevel.level,relatedDummy.thirdLevel.level[],relatedDummy.thirdLevel.fourthLevel.level,relatedDummy.thirdLevel.fourthLevel.level[],relatedDummy.thirdLevel.badFourthLevel.level,relatedDummy.thirdLevel.badFourthLevel.level[],relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level,relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level[],properties[]}",
"hydra:variableRepresentation": "BasicRepresentation",
"hydra:mapping": [
{
Expand Down Expand Up @@ -478,25 +478,31 @@ Feature: Date filter on collections
},
{
"@type": "IriTemplateMapping",
"variable": "description[exists]",
"variable": "exists[alias]",
"property": "alias",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "exists[description]",
"property": "description",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "relatedDummy.name[exists]",
"variable": "exists[relatedDummy.name]",
"property": "relatedDummy.name",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "dummyBoolean[exists]",
"variable": "exists[dummyBoolean]",
"property": "dummyBoolean",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "relatedDummy[exists]",
"variable": "exists[relatedDummy]",
"property": "relatedDummy",
"required": false
},
Expand Down Expand Up @@ -840,7 +846,7 @@ Feature: Date filter on collections
},
"hydra:search": {
"@type": "hydra:IriTemplate",
"hydra:template": "/dummies{?dummyBoolean,dummyDate[before],dummyDate[after],relatedDummy.dummyDate[before],relatedDummy.dummyDate[strictly_before],relatedDummy.dummyDate[after],relatedDummy.dummyDate[strictly_after],description[exists],relatedDummy.name[exists],dummyBoolean[exists],relatedDummy[exists],dummyFloat,dummyPrice,order[id],order[name],order[relatedDummy.symfony],dummyFloat[between],dummyFloat[gt],dummyFloat[gte],dummyFloat[lt],dummyFloat[lte],dummyPrice[between],dummyPrice[gt],dummyPrice[gte],dummyPrice[lt],dummyPrice[lte],id,id[],name,alias,description,relatedDummy.name,relatedDummy.name[],relatedDummies,relatedDummies[],dummy,relatedDummies.name}",
"hydra:template": "/dummies{?dummyBoolean,dummyDate[before],dummyDate[after],relatedDummy.dummyDate[before],relatedDummy.dummyDate[strictly_before],relatedDummy.dummyDate[after],relatedDummy.dummyDate[strictly_after],exists[description],exists[relatedDummy.name],exists[dummyBoolean],exists[relatedDummy],dummyFloat,dummyPrice,order[id],order[name],order[relatedDummy.symfony],dummyFloat[between],dummyFloat[gt],dummyFloat[gte],dummyFloat[lt],dummyFloat[lte],dummyPrice[between],dummyPrice[gt],dummyPrice[gte],dummyPrice[lt],dummyPrice[lte],id,id[],name,alias,description,relatedDummy.name,relatedDummy.name[],relatedDummies,relatedDummies[],dummy,relatedDummies.name}",
"hydra:variableRepresentation": "BasicRepresentation",
"hydra:mapping": [
{
Expand Down Expand Up @@ -899,25 +905,25 @@ Feature: Date filter on collections
},
{
"@type": "IriTemplateMapping",
"variable": "description[exists]",
"variable": "exists[description]",
"property": "description",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "relatedDummy.name[exists]",
"variable": "exists[relatedDummy.name]",
"property": "relatedDummy.name",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "relatedDummy[exists]",
"variable": "exists[relatedDummy]",
"property": "relatedDummy",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "dummyBoolean[exists]",
"variable": "exists[dummyBoolean]",
"property": "dummyBoolean",
"required": false
},
Expand Down
8 changes: 4 additions & 4 deletions features/doctrine/exists_filter.feature
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Feature: Exists filter on collections
@createSchema
Scenario: Get collection where exists does not exist
Given there are 15 dummy objects with dummyBoolean true
When I send a "GET" request to "/dummies?dummyBoolean[exists]=0"
When I send a "GET" request to "/dummies?exists[dummyBoolean]=0"
Then the response status code should be 200
And the response should be in JSON
And the header "Content-Type" should be equal to "application/ld+json; charset=utf-8"
Expand All @@ -26,7 +26,7 @@ Feature: Exists filter on collections
"hydra:view": {
"type": "object",
"properties": {
"@id": {"pattern": "^/dummies\\?dummyBoolean%5Bexists%5D=0$"},
"@id": {"pattern": "^/dummies\\?exists%5BdummyBoolean%5D=0$"},
"@type": {"pattern": "^hydra:PartialCollectionView$"}
}
}
Expand All @@ -35,7 +35,7 @@ Feature: Exists filter on collections
"""

Scenario: Get collection where exists does exist
When I send a "GET" request to "/dummies?dummyBoolean[exists]=1"
When I send a "GET" request to "/dummies?exists[dummyBoolean]=1"
Then the response status code should be 200
And the response should be in JSON
And the header "Content-Type" should be equal to "application/ld+json; charset=utf-8"
Expand All @@ -55,7 +55,7 @@ Feature: Exists filter on collections
"hydra:view": {
"type": "object",
"properties": {
"@id": {"pattern": "^/dummies\\?dummyBoolean%5Bexists%5D=1&page=1$"},
"@id": {"pattern": "^/dummies\\?exists%5BdummyBoolean%5D=1&page=1$"},
"@type": {"pattern": "^hydra:PartialCollectionView$"}
}
}
Expand Down
Loading