jonnybarnes.uk/tests/MicropubClientTest.php

70 lines
2.3 KiB
PHP
Raw Normal View History

2016-05-19 15:01:28 +01:00
<?php
namespace App\Tests;
use BrowserKitTest;
2016-05-19 15:01:28 +01:00
use Lcobucci\JWT\Builder;
use Lcobucci\JWT\Signer\Hmac\Sha256;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
class MicropubClientTest extends BrowserKitTest
2016-05-19 15:01:28 +01:00
{
protected $appurl;
public function setUp()
{
parent::setUp();
$this->appurl = config('app.url');
}
/**
* Test the client gets shown for an unauthorised request.
*
* @return void
*/
public function testClientPageUnauthorised()
{
2017-02-16 15:42:44 +00:00
$this->visit($this->appurl . '/micropub/create')
2016-05-19 15:01:28 +01:00
->see('IndieAuth');
}
public function testClientPageRecentAuth()
{
2017-02-16 15:42:44 +00:00
$this->visit($this->appurl . '/micropub/create')
->see($this->appurl);
2016-05-19 15:01:28 +01:00
}
2016-05-25 22:43:28 +01:00
public function testClientCreatesNewNoteWithTag()
2016-05-19 15:01:28 +01:00
{
//in this test, the syndication targets are blank
2016-05-19 15:01:28 +01:00
$faker = \Faker\Factory::create();
2016-05-25 22:43:28 +01:00
$note = 'Fake note from #PHPUnit: ' . $faker->text;
2017-02-16 15:42:44 +00:00
$this->visit($this->appurl . '/micropub/create')
2016-05-19 15:01:28 +01:00
->type($note, 'content')
->press('Submit');
$this->seeInDatabase('notes', ['note' => $note]);
2016-05-25 22:43:28 +01:00
$this->visit($this->appurl . '/notes/tagged/PHPUnit')
->see('PHPUnit');
//my client has made a request to my endpoint, which then adds
//to the db, so database transaction dont work
//so lets manually delete the new entry
//first, if we are using algolia, we need to delete it
if (env('SCOUT_DRIVER') == 'algolia') {
//we need to allow the index to update in order to query it
sleep(2);
$client = new \AlgoliaSearch\Client(env('ALGOLIA_APP_ID'), env('ALGOLIA_SECRET'));
$index = $client->initIndex('notes');
//here we query for the new note and tell algolia too delete it
$res = $index->deleteByQuery('Fake note from');
if ($res == 0) {
//somehow the new not didnt get deleted
$this->fail('Didnt delete the note from the index');
}
}
$newNote = \App\Note::where('note', $note)->first();
$newNote->forceDelete();
2016-05-19 15:01:28 +01:00
}
}