Filter::detach($this->mock, 'filterable', 'spec.my_prefix');
expect($this->mock->filterable('World!'))->toBe('Hello World!');
});
});
describe("::filters()", function () {
it("gets filters of a context", function () {
Filter::apply($this->mock, 'filterable', 'spec.my_prefix');
$filters = Filter::filters($this->mock, 'filterable');
expect($filters)->toBeAn('array')->toHaveLength(1);
expect(reset($filters))->toBeAnInstanceOf('Closure');
});
});
describe("::enable()", function () {
it("disables the filter system", function () {
Filter::apply($this->mock, 'filterable', 'spec.my_prefix');
Filter::enable(false);
expect($this->mock->filterable('World!'))->toBe('Hello World!');
});
});
});
context("with a class context", function () {
beforeEach(function () {
$this->class = Stub::classname();
Stub::on($this->class)->method('::filterable', function () {
return Filter::on(get_called_class(), 'filterable', func_get_args(), function ($chain, $message) {
return "Hello {$message}";
});
});
});
describe("::apply()", function () {
it("applies a filter and override a parameter", function () {