Ejemplo n.º 1
0
     it("adds validation errors", function () {
         $validator = Gallery::validator();
         $validator->rule('name', 'not:empty');
         $gallery = Gallery::create();
         $gallery->validates();
         $payload = new Payload();
         $payload->set($gallery);
         expect($payload->errors())->toBe([['status' => 422, 'code' => 0, 'title' => "Validation Error", 'meta' => [['name' => ['is required']]]]]);
     });
 });
 describe("->delete()", function () {
     it("sets a delete payload", function () {
         $this->fixtures->populate('image');
         $payload = new Payload();
         $images = Image::all();
         $payload->delete($images);
         expect($payload->serialize())->toEqual(['data' => [['type' => 'image', 'id' => 1], ['type' => 'image', 'id' => 2], ['type' => 'image', 'id' => 3], ['type' => 'image', 'id' => 4], ['type' => 'image', 'id' => 5]]]);
     });
 });
 describe("->export()", function () {
     it("exports payload as nested array", function () {
         $json = file_get_contents($this->fixture . 'collection.json');
         $payload = Payload::parse($json);
         expect($payload->export())->toBe([['id' => '1', 'title' => 'JSON API paints my bikeshed!', 'author' => ['id' => '9', 'firstName' => 'Dan', 'lastName' => 'Gebhardt', 'twitter' => 'dgeb'], 'comments' => [['id' => '5', 'body' => 'First!'], ['id' => '12', 'body' => 'I like XML better']]], ['id' => '2', 'title' => 'JSON API is awesome!', 'author' => ['id' => '9', 'firstName' => 'Dan', 'lastName' => 'Gebhardt', 'twitter' => 'dgeb'], 'comments' => []]]);
         expect($payload->meta())->toBe(['count' => 13]);
     });
 });
 describe("->serialize()", function () {
     it("serializes an empty payload", function () {
         $payload = new Payload();
         expect($payload->serialize())->toEqual(['data' => []]);