mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 07:47:22 +01:00
Add more tests
This commit is contained in:
@ -41,3 +41,13 @@ describe('outer', function () {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('with expectations', function () {
|
||||
beforeEach()->expect(true)->toBeTrue();
|
||||
|
||||
describe('nested block', function () {
|
||||
test('test', function () {});
|
||||
});
|
||||
|
||||
test('test', function () {});
|
||||
});
|
||||
|
||||
@ -392,3 +392,25 @@ it('may be used with high order even when bound')
|
||||
->with('greeting-bound')
|
||||
->expect(fn (string $greeting) => $greeting)
|
||||
->throws(InvalidArgumentException::class);
|
||||
|
||||
describe('with on nested describe', function () {
|
||||
describe('nested', function () {
|
||||
test('before inner describe block', function (...$args) {
|
||||
expect($args)->toBe([1]);
|
||||
});
|
||||
|
||||
describe('describe', function () {
|
||||
it('should include the with value from all parent describe blocks', function (...$args) {
|
||||
expect($args)->toBe([1, 2]);
|
||||
});
|
||||
|
||||
test('should include the with value from all parent describe blocks and the test', function (...$args) {
|
||||
expect($args)->toBe([1, 2, 3]);
|
||||
})->with([3]);
|
||||
})->with([2]);
|
||||
|
||||
test('after inner describe block', function (...$args) {
|
||||
expect($args)->toBe([1]);
|
||||
});
|
||||
})->with([1]);
|
||||
});
|
||||
|
||||
@ -36,3 +36,39 @@ test('depends run test only once', function () use (&$runCounter) {
|
||||
// Regression tests. See https://github.com/pestphp/pest/pull/216
|
||||
it('asserts true is true')->assertTrue(true);
|
||||
test('depends works with the correct test name')->assertTrue(true)->depends('it asserts true is true');
|
||||
|
||||
describe('describe block', function () {
|
||||
$runCounter = 0;
|
||||
|
||||
test('first in describe', function () use (&$runCounter) {
|
||||
$runCounter++;
|
||||
expect(true)->toBeTrue();
|
||||
});
|
||||
|
||||
test('second in describe', function () use (&$runCounter) {
|
||||
expect($runCounter)->toBe(1);
|
||||
$runCounter++;
|
||||
})->depends('first in describe');
|
||||
|
||||
test('third in describe', function () use (&$runCounter) {
|
||||
expect($runCounter)->toBe(2);
|
||||
})->depends('second in describe');
|
||||
|
||||
describe('nested describe', function () {
|
||||
$runCounter = 0;
|
||||
|
||||
test('first in nested describe', function () use (&$runCounter) {
|
||||
$runCounter++;
|
||||
expect(true)->toBeTrue();
|
||||
});
|
||||
|
||||
test('second in nested describe', function () use (&$runCounter) {
|
||||
expect($runCounter)->toBe(1);
|
||||
$runCounter++;
|
||||
})->depends('first in nested describe');
|
||||
|
||||
test('third in nested describe', function () use (&$runCounter) {
|
||||
expect($runCounter)->toBe(2);
|
||||
})->depends('second in nested describe');
|
||||
});
|
||||
});
|
||||
|
||||
@ -21,11 +21,27 @@ it('may have static note and runtime note', function () {
|
||||
})->note('This is a static note');
|
||||
|
||||
describe('nested', function () {
|
||||
beforeEach(function () {
|
||||
$this->note('This is before each describe runtime note');
|
||||
})->note('This is before each describe static note');
|
||||
|
||||
it('may have static note and runtime note', function () {
|
||||
expect(true)->toBeTrue(true);
|
||||
|
||||
$this->note('This is a runtime note within describe');
|
||||
})->note('This is a static note within describe');
|
||||
|
||||
describe('describe nested within describe', function () {
|
||||
beforeEach(function () {
|
||||
$this->note('This is before each nested describe runtime note');
|
||||
})->note('This is before each nested describe static note');
|
||||
|
||||
it('may have a static note and runtime note', function () {
|
||||
expect(true)->toBeTrue(true);
|
||||
|
||||
$this->note('This is a runtime note within a nested describe');
|
||||
})->note('This is a static note within a nested describe');
|
||||
})->note('This is a nested describe static note');
|
||||
})->note('This is describe static note');
|
||||
|
||||
test('multiple notes', function () {
|
||||
|
||||
@ -43,3 +43,39 @@ test('multiple times with repeat iterator with multiple dataset', function (stri
|
||||
->toBeNumeric()
|
||||
->toBeGreaterThan(0);
|
||||
})->repeat(times: 2)->with(['a', 'b', 'c'], ['d', 'e', 'f']);
|
||||
|
||||
describe('describe blocks', function () {
|
||||
test('multiple times', function () {
|
||||
expect(true)->toBeTrue();
|
||||
})->repeat(times: 3);
|
||||
|
||||
describe('describe with repeat', function () {
|
||||
test('test with no repeat should repeat the number of times specified in the parent describe block', function () {
|
||||
expect(true)->toBeTrue();
|
||||
});
|
||||
|
||||
test('test with repeat should repeat the number of times specified in the test', function () {
|
||||
expect(true)->toBeTrue();
|
||||
})->repeat(times: 2);
|
||||
|
||||
describe('nested describe without repeat', function () {
|
||||
test("test with no repeat should repeat the number of times specified in the parent's parent describe block", function () {
|
||||
expect(true)->toBeTrue();
|
||||
});
|
||||
|
||||
test('test with repeat should repeat the number of times specified in the test', function () {
|
||||
expect(true)->toBeTrue();
|
||||
})->repeat(times: 2);
|
||||
});
|
||||
|
||||
describe('nested describe with repeat', function () {
|
||||
test('test with no repeat should repeat the number of times specified in the parent describe block', function () {
|
||||
expect(true)->toBeTrue();
|
||||
});
|
||||
|
||||
test('test with repeat should repeat the number of times specified in the test', function () {
|
||||
expect(true)->toBeTrue();
|
||||
})->repeat(times: 2);
|
||||
})->repeat(times: 2);
|
||||
})->repeat(times: 3);
|
||||
});
|
||||
|
||||
@ -54,3 +54,73 @@ it('can user higher order callables and skip')
|
||||
return $this->shouldSkip;
|
||||
})
|
||||
->toBeFalse();
|
||||
|
||||
describe('skip on describe', function () {
|
||||
beforeEach(function () {
|
||||
$this->ran = false;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
match ($this->name()) {
|
||||
'__pest_evaluable__skip_on_describe__→__skipped_tests__→__nested_inside_skipped_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__skip_on_describe__→__skipped_tests__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__skip_on_describe__→_it_should_execute' => expect($this->ran)->toBe(true),
|
||||
default => $this->fail('Unexpected test name: '.$this->name()),
|
||||
};
|
||||
});
|
||||
|
||||
describe('skipped tests', function () {
|
||||
describe('nested inside skipped block', function () {
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
})->skip();
|
||||
|
||||
it('should execute', function () {
|
||||
$this->ran = true;
|
||||
expect($this->ran)->toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('skip on beforeEach', function () {
|
||||
beforeEach(function () {
|
||||
$this->ran = false;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
match ($this->name()) {
|
||||
'__pest_evaluable__skip_on_beforeEach__→__skipped_tests__→__nested_inside_skipped_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__skip_on_beforeEach__→__skipped_tests__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__skip_on_beforeEach__→_it_should_execute' => expect($this->ran)->toBe(true),
|
||||
default => $this->fail('Unexpected test name: '.$this->name()),
|
||||
};
|
||||
});
|
||||
|
||||
describe('skipped tests', function () {
|
||||
beforeEach()->skip();
|
||||
|
||||
describe('nested inside skipped block', function () {
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should execute', function () {
|
||||
$this->ran = true;
|
||||
expect($this->ran)->toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@ -27,3 +27,73 @@ it('may have an associated PR', function () {
|
||||
it('may have an associated note', function () {
|
||||
expect(true)->toBeTrue();
|
||||
})->todo(note: 'a note');
|
||||
|
||||
describe('todo on describe', function () {
|
||||
beforeEach(function () {
|
||||
$this->ran = false;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
match ($this->name()) {
|
||||
'__pest_evaluable__todo_on_describe__→__todo_block__→__nested_inside_todo_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__todo_on_describe__→__todo_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__todo_on_describe__→_it_should_execute' => expect($this->ran)->toBe(true),
|
||||
default => $this->fail('Unexpected test name: '.$this->name()),
|
||||
};
|
||||
});
|
||||
|
||||
describe('todo block', function () {
|
||||
describe('nested inside todo block', function () {
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
})->todo();
|
||||
|
||||
it('should execute', function () {
|
||||
$this->ran = true;
|
||||
expect($this->ran)->toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('todo on beforeEach', function () {
|
||||
beforeEach(function () {
|
||||
$this->ran = false;
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
match ($this->name()) {
|
||||
'__pest_evaluable__todo_on_beforeEach__→__todo_block__→__nested_inside_todo_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__todo_on_beforeEach__→__todo_block__→_it_should_not_execute' => expect($this->ran)->toBe(false),
|
||||
'__pest_evaluable__todo_on_beforeEach__→_it_should_execute' => expect($this->ran)->toBe(true),
|
||||
default => $this->fail('Unexpected test name: '.$this->name()),
|
||||
};
|
||||
});
|
||||
|
||||
describe('todo block', function () {
|
||||
beforeEach()->todo();
|
||||
|
||||
describe('nested inside todo block', function () {
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should not execute', function () {
|
||||
$this->ran = true;
|
||||
$this->fail();
|
||||
});
|
||||
});
|
||||
|
||||
it('should execute', function () {
|
||||
$this->ran = true;
|
||||
expect($this->ran)->toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user