Sfoglia il codice sorgente

Re-add faker seed + tests

shalvah 6 anni fa
parent
commit
d2901e51a6
3 ha cambiato i file con 31 aggiunte e 1 eliminazioni
  1. 0 1
      TODO.md
  2. 7 0
      config/apidoc.php
  3. 24 0
      tests/Unit/GeneratorTestCase.php

+ 0 - 1
TODO.md

@@ -1,6 +1,5 @@
 - Add tests for bindings and bindings prefixes
 - Add tests for config overrides
-- Add tests for faker seed
 - Add tests on output (deterministic)
 - Bring `bindings` outside of `response_calls`
 - Should `routes.*.apply.response_calls.headers` be replaced by `routes.*.apply.headers`?

+ 7 - 0
config/apidoc.php

@@ -221,4 +221,11 @@ return [
          */
         'serializer' => null,
     ],
+
+    /*
+     * If you would like the package to generate the same example values for parameters on each run,
+     * set this to any number (eg. 1234)
+     *
+     */
+    'faker_seed' => null,
 ];

+ 24 - 0
tests/Unit/GeneratorTestCase.php

@@ -532,6 +532,30 @@ abstract class GeneratorTestCase extends TestCase
         unlink(storage_path('response_error_test.json'));
     }
 
+    /** @test */
+    public function generates_consistent_examples_when_faker_seed_is_set()
+    {
+        $route = $this->createRoute('GET', '/withBodyParameters', 'withBodyParameters');
+
+        $paramName = 'room_id';
+        $results = [];
+        $results[$this->generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$this->generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$this->generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$this->generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$this->generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        // Examples should have different values
+        $this->assertNotEquals(count($results), 1);
+
+        $generator = new Generator(12345);
+        $results = [];
+        $results[$generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        $results[$generator->processRoute($route)['cleanBodyParameters'][$paramName]] = true;
+        // Examples should have same values
+        $this->assertEquals(count($results), 1);
+    }
     /** @test */
     public function uses_configured_settings_when_calling_route()
     {