diff --git a/database/factories/TransactionFactory.php b/database/factories/TransactionFactory.php new file mode 100644 index 0000000..d5a53cd --- /dev/null +++ b/database/factories/TransactionFactory.php @@ -0,0 +1,20 @@ + fake()->sentence(), + 'col2' => fake()->randomNumber(), + 'created_at' => fake()->date(), + ]; + } +} diff --git a/ray.php b/ray.php new file mode 100644 index 0000000..7150835 --- /dev/null +++ b/ray.php @@ -0,0 +1,97 @@ + env('RAY_ENABLED', true), + + /* + * When enabled, all cache events will automatically be sent to Ray. + */ + 'send_cache_to_ray' => env('SEND_CACHE_TO_RAY', false), + + /* + * When enabled, all things passed to `dump` or `dd` + * will be sent to Ray as well. + */ + 'send_dumps_to_ray' => env('SEND_DUMPS_TO_RAY', true), + + /* + * When enabled all job events will automatically be sent to Ray. + */ + 'send_jobs_to_ray' => env('SEND_JOBS_TO_RAY', false), + + /* + * When enabled, all things logged to the application log + * will be sent to Ray as well. + */ + 'send_log_calls_to_ray' => env('SEND_LOG_CALLS_TO_RAY', false), + + /* + * When enabled, all queries will automatically be sent to Ray. + */ + 'send_queries_to_ray' => env('SEND_QUERIES_TO_RAY', false), + + /** + * When enabled, all duplicate queries will automatically be sent to Ray. + */ + 'send_duplicate_queries_to_ray' => env('SEND_DUPLICATE_QUERIES_TO_RAY', false), + + /* + * When enabled, slow queries will automatically be sent to Ray. + */ + 'send_slow_queries_to_ray' => env('SEND_SLOW_QUERIES_TO_RAY', false), + + /* + * When enabled, all requests made to this app will automatically be sent to Ray. + */ + 'send_requests_to_ray' => env('SEND_REQUESTS_TO_RAY', false), + + /** + * When enabled, all Http Client requests made by this app will be automatically sent to Ray. + */ + 'send_http_client_requests_to_ray' => env('SEND_HTTP_CLIENT_REQUESTS_TO_RAY', false), + + /* + * When enabled, all views that are rendered automatically be sent to Ray. + */ + 'send_views_to_ray' => env('SEND_VIEWS_TO_RAY', false), + + /* + * When enabled, all exceptions will be automatically sent to Ray. + */ + 'send_exceptions_to_ray' => env('SEND_EXCEPTIONS_TO_RAY', true), + + /* + * The host used to communicate with the Ray app. + * When using Docker on Mac or Windows, you can replace localhost with 'host.docker.internal' + * When using Homestead with the VirtualBox provider, you can replace localhost with '10.0.2.2' + * When using Homestead with the Parallels provider, you can replace localhost with '10.211.55.2' + */ + 'host' => env('RAY_HOST', 'host.docker.internal'), + + /* + * The port number used to communicate with the Ray app. + */ + 'port' => env('RAY_PORT', 23517), + + /* + * Absolute base path for your sites or projects in Homestead, + * Vagrant, Docker, or another remote development server. + */ + 'remote_path' => env('RAY_REMOTE_PATH', null), + + /* + * Absolute base path for your sites or projects on your local + * computer where your IDE or code editor is running on. + */ + 'local_path' => env('RAY_LOCAL_PATH', null), + + /* + * When this setting is enabled, the package will not try to format values sent to Ray. + */ + 'always_send_raw_values' => false, +]; diff --git a/src/DateScopes.php b/src/DateScopes.php index f819d7f..6793a4b 100755 --- a/src/DateScopes.php +++ b/src/DateScopes.php @@ -41,9 +41,7 @@ public function scopeOfLastUnit(Builder $query, string $dateUnit, int $value, Da $applyNoOverflow = (! in_array($dateUnit, $this->fixedLengthDateUnits)) ? 'NoOverflow' : '' ; $subFunc = 'sub'.ucfirst($dateUnit).'s'.$applyNoOverflow; - - $sub = ($dateUnit === 'second') ? 0 : 1; -// $sub = 1; + $sub = 1; if ($dateRange === DateRange::EXCLUSIVE) { $range = [ @@ -57,7 +55,7 @@ public function scopeOfLastUnit(Builder $query, string $dateUnit, int $value, Da ]; } -// dump(collect($range)->transform(fn ($item) => $item->format('Y-m-d H:i:s'))->toArray()); + //dump(collect($range)->transform(fn ($item) => $item->format('Y-m-d H:i:s'))->toArray()); return $query->whereBetween(config('date-scopes.created_column'), $range); } diff --git a/tests/DataScopesTest.php b/tests/DataScopesTest.php index adbc82d..292e189 100644 --- a/tests/DataScopesTest.php +++ b/tests/DataScopesTest.php @@ -98,25 +98,8 @@ function getCreatedAtValues(): array ->count(count($createdAtValues)) ->state(new Sequence(...$createdAtValues)) ->create(); - - Transaction::ofJustNow()->get(); - Transaction::ofLast15Seconds(DateRange::INCLUSIVE)->get(); - Transaction::ofLast15Seconds(DateRange::EXCLUSIVE)->get(); - dd(); }); -it('retrieves transactions of last x seconds', function () { -// expect(Transaction::ofJustNow()->get())->toHaveCount(1); -// expect(Transaction::ofLastSecond()->get())->toHaveCount(1); -// expect(Transaction::ofLast15Seconds(DateRange::INCLUSIVE)->get())->toHaveCount(2); -// expect(Transaction::ofLast15Seconds(DateRange::EXCLUSIVE)->get())->toHaveCount(2); - - -// Transaction::ofToday()->get(); -// Transaction::ofYesterday()->get(); -// Transaction::ofLast7Days()->get(); -}); -// it('covers all cases', function () { //TODO // Write tests for all kind of scopes diff --git a/tests/Models/Transaction.php b/tests/Models/Transaction.php new file mode 100644 index 0000000..71664de --- /dev/null +++ b/tests/Models/Transaction.php @@ -0,0 +1,12 @@ +