jonnybarnes.uk/tests/Feature/OwnYourGramTest.php
Jonny Barnes 3f15291d16 Update the app to Laravel 5.5
Squashed commit of the following:

commit 070f46bbacd91855730d467cc2806183441791ae
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Sep 4 18:06:04 2017 +0100

    Now we now how the laravel IoC conatiner works, no need to be newing class dependencies

commit 57eeacdef178532a681f774f8c6738950d40c964
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Sep 4 17:59:28 2017 +0100

    Get json test working again

commit 81c3cfc9b432241d8a4df7f1e0511a50ea4f9b90
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Sep 4 14:38:10 2017 +0100

    Can’t use RefreshDatabase yet

commit 4ba5ff724d50ca86b3fa90c7bb4e71ad9e4dad79
Author: Jonny Barnes <jonny@jonnybarnes.uk>
Date:   Mon Sep 4 14:10:33 2017 +0100

    Initial attempt at updating to Laravel 5.5
2017-09-04 19:34:39 +01:00

57 lines
1.9 KiB
PHP

<?php
namespace Tests\Feature;
use Tests\TestCase;
use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Hmac\Sha256;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class OwnYourGramTest extends TestCase
{
use DatabaseTransactions;
public function test_ownyourgram_post()
{
$response = $this->json(
'POST',
'/api/post',
[
'type' => ['h-entry'],
'properties' => [
'content' => ['How beautiful are the plates and chopsticks'],
'published' => [\Carbon\Carbon::now()->toIso8601String()],
'location' => ['geo:53.802419075834,-1.5431942917637'],
'syndication' => ['https://www.instagram.com/p/BVC_nVTBFfi/'],
'photo' => ['https://scontent-sjc2-1.cdninstagram.com/t51.2885-15/e35/18888604_425332491185600_326487281944756224_n.jpg'],
],
],
['HTTP_Authorization' => 'Bearer ' . $this->getToken()]
);
$response->assertStatus(201)->assertJson([
'response' => 'created'
]);
$this->assertDatabaseHas('media_endpoint', [
'path' => 'https://scontent-sjc2-1.cdninstagram.com/t51.2885-15/e35/18888604_425332491185600_326487281944756224_n.jpg'
]);
$this->assertDatabaseHas('notes', [
'note' => 'How beautiful are the plates and chopsticks',
'instagram_url' => 'https://www.instagram.com/p/BVC_nVTBFfi/'
]);
}
private function getToken()
{
$signer = new Sha256();
$token = (new Builder())
->set('client_id', 'https://ownyourgram.com')
->set('me', config('app.url'))
->set('scope', 'create')
->set('issued_at', time())
->sign($signer, env('APP_KEY'))
->getToken();
return $token;
}
}