mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-30 07:59:50 -08:00
d54dda40d3
* Rely on laravel transactions instead of refreshing the database dump between functional test runs. Cuts functional test runtime by 75%. Also use mysql to seed directly. * Split functional tests into two groups on travis to reduce overall memory usage. Any new tests will need to be added to one of these two files before they are run on travis. running all functional tests simultaneously still works locally. * Fix name of test in group.
67 lines
2.2 KiB
PHP
67 lines
2.2 KiB
PHP
<?php
|
|
|
|
|
|
class CategoriesCest
|
|
{
|
|
public function _before(FunctionalTester $I)
|
|
{
|
|
$I->amOnPage('/login');
|
|
$I->fillField('username', 'admin');
|
|
$I->fillField('password', 'password');
|
|
$I->click('Login');
|
|
}
|
|
|
|
public function _after(FunctionalTester $I)
|
|
{
|
|
}
|
|
|
|
// tests
|
|
public function tryToTest(FunctionalTester $I)
|
|
{
|
|
$I->wantTo('Test Category Creation');
|
|
$I->lookForwardTo('seeing it load without errors');
|
|
$I->amOnPage(route('categories.create'));
|
|
$I->seeInTitle('Create Category');
|
|
$I->see('Create Category', 'h1.pull-left');
|
|
}
|
|
|
|
public function failsEmptyValidation(FunctionalTester $I)
|
|
{
|
|
$I->wantTo("Test Validation Fails with blank elements");
|
|
$I->amOnPage(route('categories.create'));
|
|
$I->click('Save');
|
|
$I->seeElement('.alert-danger');
|
|
$I->see('The name field is required.', '.alert-msg');
|
|
$I->see('The category type field is required.', '.alert-msg');
|
|
}
|
|
|
|
public function passesCorrectValidation(FunctionalTester $I)
|
|
{
|
|
$category = factory(App\Models\Category::class)->states('asset-laptop-category')->make([
|
|
'name' => "Test Category"
|
|
]);
|
|
$values = [
|
|
'category_type' => $category->category_type,
|
|
'checkin_email' => $category->checkin_email,
|
|
'eula_text' => $category->eula_text,
|
|
'name' => $category->name,
|
|
'require_acceptance' => $category->require_acceptance,
|
|
];
|
|
$I->wantTo("Test Validation Succeeds");
|
|
$I->amOnPage(route('categories.create'));
|
|
$I->submitForm('form#create-form', $values);
|
|
$I->seeRecord('categories', $values);
|
|
$I->dontSee('<span class="');
|
|
$I->seeElement('.alert-success');
|
|
}
|
|
public function allowsDelete(FunctionalTester $I)
|
|
{
|
|
$I->wantTo('Ensure I can delete a category');
|
|
$category = factory(App\Models\Category::class)->states('asset-laptop-category')->create([
|
|
'name'=>"Deletable Test Category"
|
|
]);
|
|
$I->sendDelete(route('categories.destroy', $category->id), ['_token' => csrf_token()]);
|
|
$I->seeResponseCodeIs(200);
|
|
}
|
|
}
|