SYMBOL INDEX (2769 symbols across 622 files) FILE: app/Actions/Fortify/CreateNewUser.php class CreateNewUser (line 22) | class CreateNewUser implements CreatesNewUsers method create (line 33) | public function create(array $input): User FILE: app/Actions/Fortify/PasswordValidationRules.php type PasswordValidationRules (line 10) | trait PasswordValidationRules method passwordRules (line 17) | protected function passwordRules(): array FILE: app/Actions/Fortify/ResetUserPassword.php class ResetUserPassword (line 12) | class ResetUserPassword implements ResetsUserPasswords method reset (line 21) | public function reset(User $user, array $input): void FILE: app/Actions/Fortify/UpdateUserPassword.php class UpdateUserPassword (line 12) | class UpdateUserPassword implements UpdatesUserPasswords method update (line 21) | public function update(User $user, array $input): void FILE: app/Actions/Fortify/UpdateUserProfileInformation.php class UpdateUserProfileInformation (line 16) | class UpdateUserProfileInformation implements UpdatesUserProfileInformation method update (line 25) | public function update(User $user, array $input): void FILE: app/Actions/Jetstream/AddOrganizationMember.php class AddOrganizationMember (line 21) | class AddOrganizationMember implements AddsTeamMembers method add (line 26) | public function add(User $owner, Organization $organization, string $e... method validate (line 43) | protected function validate(Organization $organization, string $email,... method rules (line 58) | protected function rules(): array method ensureUserIsNotAlreadyOnTeam (line 84) | protected function ensureUserIsNotAlreadyOnTeam(Organization $team, st... FILE: app/Actions/Jetstream/CreateOrganization.php class CreateOrganization (line 19) | class CreateOrganization implements CreatesTeams method create (line 29) | public function create(User $user, array $input): Organization FILE: app/Actions/Jetstream/DeleteOrganization.php class DeleteOrganization (line 11) | class DeleteOrganization implements DeletesTeams method delete (line 16) | public function delete(Organization $organization): void FILE: app/Actions/Jetstream/DeleteUser.php class DeleteUser (line 13) | class DeleteUser implements DeletesUsers method delete (line 20) | public function delete(User $user): void FILE: app/Actions/Jetstream/InviteOrganizationMember.php class InviteOrganizationMember (line 13) | class InviteOrganizationMember implements InvitesTeamMembers method invite (line 20) | public function invite(User $user, Organization $organization, string ... FILE: app/Actions/Jetstream/RemoveOrganizationMember.php class RemoveOrganizationMember (line 13) | class RemoveOrganizationMember implements RemovesTeamMembers method remove (line 20) | public function remove(User $user, Organization $organization, User $t... FILE: app/Actions/Jetstream/UpdateMemberRole.php class UpdateMemberRole (line 14) | class UpdateMemberRole method update (line 21) | public function update(User $actingUser, Organization $organization, s... FILE: app/Actions/Jetstream/UpdateOrganization.php class UpdateOrganization (line 16) | class UpdateOrganization implements UpdatesTeamNames method update (line 26) | public function update(User $user, Organization $organization, array $... FILE: app/Actions/Jetstream/ValidateOrganizationDeletion.php class ValidateOrganizationDeletion (line 12) | class ValidateOrganizationDeletion method validate (line 22) | public function validate(User $user, Organization $organization): void FILE: app/Console/Commands/Admin/OrganizationDeleteCommand.php class OrganizationDeleteCommand (line 12) | class OrganizationDeleteCommand extends Command method handle (line 32) | public function handle(DeletionService $deletionService): int FILE: app/Console/Commands/Admin/UserCreateCommand.php class UserCreateCommand (line 15) | class UserCreateCommand extends Command method handle (line 38) | public function handle(): int FILE: app/Console/Commands/Admin/UserVerifyCommand.php class UserVerifyCommand (line 11) | class UserVerifyCommand extends Command method handle (line 31) | public function handle(): int FILE: app/Console/Commands/Auth/AuthSendReminderForExpiringApiTokensCommand.php class AuthSendReminderForExpiringApiTokensCommand (line 17) | class AuthSendReminderForExpiringApiTokensCommand extends Command method handle (line 37) | public function handle(): int FILE: app/Console/Commands/Correction/CorrectionPlaceholderMembersCommand.php class CorrectionPlaceholderMembersCommand (line 13) | class CorrectionPlaceholderMembersCommand extends Command method handle (line 33) | public function handle(): int FILE: app/Console/Commands/Report/ReportSetExpiredToPrivateCommand.php class ReportSetExpiredToPrivateCommand (line 13) | class ReportSetExpiredToPrivateCommand extends Command method handle (line 33) | public function handle(): int FILE: app/Console/Commands/SelfHost/SelfHostCheckForUpdateCommand.php class SelfHostCheckForUpdateCommand (line 11) | class SelfHostCheckForUpdateCommand extends Command method handle (line 30) | public function handle(): int FILE: app/Console/Commands/SelfHost/SelfHostDatabaseConsistency.php class SelfHostDatabaseConsistency (line 14) | class SelfHostDatabaseConsistency extends Command method handle (line 33) | public function handle(): int method logProblems (line 106) | private function logProblems(Collection $problems, string $message, bo... FILE: app/Console/Commands/SelfHost/SelfHostGenerateKeysCommand.php class SelfHostGenerateKeysCommand (line 12) | class SelfHostGenerateKeysCommand extends Command method handle (line 34) | public function handle(): int FILE: app/Console/Commands/SelfHost/SelfHostTelemetryCommand.php class SelfHostTelemetryCommand (line 10) | class SelfHostTelemetryCommand extends Command method handle (line 29) | public function handle(): int FILE: app/Console/Commands/Test/TestEmailCommand.php class TestEmailCommand (line 11) | class TestEmailCommand extends Command method handle (line 30) | public function handle(): int FILE: app/Console/Commands/Test/TestJobCommand.php class TestJobCommand (line 11) | class TestJobCommand extends Command method handle (line 30) | public function handle(): int FILE: app/Console/Commands/Test/TestOutputCommand.php class TestOutputCommand (line 9) | class TestOutputCommand extends Command method handle (line 28) | public function handle(): int FILE: app/Console/Commands/TimeEntry/TimeEntrySendStillRunningMailsCommand.php class TimeEntrySendStillRunningMailsCommand (line 16) | class TimeEntrySendStillRunningMailsCommand extends Command method handle (line 36) | public function handle(): int FILE: app/Console/Kernel.php class Kernel (line 10) | class Kernel extends ConsoleKernel method schedule (line 15) | protected function schedule(Schedule $schedule): void method commands (line 55) | protected function commands(): void FILE: app/Enums/CurrencyFormat.php method toSelectArray (line 27) | public static function toSelectArray(): array FILE: app/Enums/DateFormat.php method toCarbonFormat (line 24) | public function toCarbonFormat(): string method toSelectArray (line 39) | public static function toSelectArray(): array FILE: app/Enums/ExportFormat.php method getFileExtension (line 16) | public function getFileExtension(): string method getExportPackageType (line 26) | public function getExportPackageType(): string FILE: app/Enums/IntervalFormat.php method toSelectArray (line 23) | public static function toSelectArray(): array FILE: app/Enums/NumberFormat.php method toSelectArray (line 28) | public static function toSelectArray(): array FILE: app/Enums/TimeEntryAggregationType.php method fromInterval (line 25) | public static function fromInterval(TimeEntryAggregationTypeInterval $ti... method toInterval (line 35) | public function toInterval(): ?TimeEntryAggregationTypeInterval FILE: app/Enums/TimeFormat.php method toSelectArray (line 19) | public static function toSelectArray(): array FILE: app/Enums/Weekday.php method toEndOfWeek (line 22) | public function toEndOfWeek(): self method carbonWeekDay (line 35) | public function carbonWeekDay(): int method toSelectArray (line 51) | public static function toSelectArray(): array FILE: app/Events/AfterCreateOrganization.php class AfterCreateOrganization (line 15) | class AfterCreateOrganization method __construct (line 22) | public function __construct(Organization $organization) FILE: app/Events/BeforeOrganizationDeletion.php class BeforeOrganizationDeletion (line 10) | class BeforeOrganizationDeletion method __construct (line 16) | public function __construct(Organization $organization) FILE: app/Events/DatabaseSeederAfterSeed.php class DatabaseSeederAfterSeed (line 9) | class DatabaseSeederAfterSeed method __construct (line 13) | public function __construct() {} FILE: app/Events/DatabaseSeederBeforeDelete.php class DatabaseSeederBeforeDelete (line 9) | class DatabaseSeederBeforeDelete method __construct (line 13) | public function __construct() {} FILE: app/Events/MemberMadeToPlaceholder.php class MemberMadeToPlaceholder (line 11) | class MemberMadeToPlaceholder method __construct (line 19) | public function __construct(Member $member, Organization $organization) FILE: app/Events/MemberRemoved.php class MemberRemoved (line 11) | class MemberRemoved method __construct (line 19) | public function __construct(Member $member, Organization $organization) FILE: app/Events/NewsletterRegistered.php class NewsletterRegistered (line 9) | class NewsletterRegistered method __construct (line 22) | public function __construct(string $name, string $email, string $id) FILE: app/Exceptions/Api/ApiException.php class ApiException (line 12) | abstract class ApiException extends Exception method __construct (line 16) | public function __construct() method render (line 24) | public function render(Request $request): JsonResponse method getKey (line 37) | public function getKey(): string method getTranslatedMessage (line 51) | public function getTranslatedMessage(): string method report (line 61) | public function report(): bool FILE: app/Exceptions/Api/CanNotDeleteUserWhoIsOwnerOfOrganizationWithMultipleMembers.php class CanNotDeleteUserWhoIsOwnerOfOrganizationWithMultipleMembers (line 7) | class CanNotDeleteUserWhoIsOwnerOfOrganizationWithMultipleMembers extend... FILE: app/Exceptions/Api/CanNotRemoveOwnerFromOrganization.php class CanNotRemoveOwnerFromOrganization (line 7) | class CanNotRemoveOwnerFromOrganization extends ApiException FILE: app/Exceptions/Api/ChangingRoleOfPlaceholderIsNotAllowed.php class ChangingRoleOfPlaceholderIsNotAllowed (line 7) | class ChangingRoleOfPlaceholderIsNotAllowed extends ApiException FILE: app/Exceptions/Api/ChangingRoleToPlaceholderIsNotAllowed.php class ChangingRoleToPlaceholderIsNotAllowed (line 7) | class ChangingRoleToPlaceholderIsNotAllowed extends ApiException FILE: app/Exceptions/Api/EntityStillInUseApiException.php class EntityStillInUseApiException (line 7) | class EntityStillInUseApiException extends ApiException method __construct (line 13) | public function __construct(string $modelToDelete, string $modelInUse) method getTranslatedMessage (line 25) | #[\Override] FILE: app/Exceptions/Api/FeatureIsNotAvailableInFreePlanApiException.php class FeatureIsNotAvailableInFreePlanApiException (line 7) | class FeatureIsNotAvailableInFreePlanApiException extends ApiException FILE: app/Exceptions/Api/InactiveUserCanNotBeUsedApiException.php class InactiveUserCanNotBeUsedApiException (line 7) | class InactiveUserCanNotBeUsedApiException extends ApiException FILE: app/Exceptions/Api/InvitationForTheEmailAlreadyExistsApiException.php class InvitationForTheEmailAlreadyExistsApiException (line 7) | class InvitationForTheEmailAlreadyExistsApiException extends ApiException FILE: app/Exceptions/Api/OnlyOwnerCanChangeOwnership.php class OnlyOwnerCanChangeOwnership (line 7) | class OnlyOwnerCanChangeOwnership extends ApiException FILE: app/Exceptions/Api/OnlyPlaceholdersCanBeMergedIntoAnotherMember.php class OnlyPlaceholdersCanBeMergedIntoAnotherMember (line 7) | class OnlyPlaceholdersCanBeMergedIntoAnotherMember extends ApiException FILE: app/Exceptions/Api/OrganizationHasNoSubscriptionButMultipleMembersException.php class OrganizationHasNoSubscriptionButMultipleMembersException (line 7) | class OrganizationHasNoSubscriptionButMultipleMembersException extends A... FILE: app/Exceptions/Api/OrganizationNeedsAtLeastOneOwner.php class OrganizationNeedsAtLeastOneOwner (line 7) | class OrganizationNeedsAtLeastOneOwner extends ApiException FILE: app/Exceptions/Api/OverlappingTimeEntryApiException.php class OverlappingTimeEntryApiException (line 7) | class OverlappingTimeEntryApiException extends ApiException FILE: app/Exceptions/Api/PdfRendererIsNotConfiguredException.php class PdfRendererIsNotConfiguredException (line 7) | class PdfRendererIsNotConfiguredException extends ApiException FILE: app/Exceptions/Api/PersonalAccessClientIsNotConfiguredException.php class PersonalAccessClientIsNotConfiguredException (line 7) | class PersonalAccessClientIsNotConfiguredException extends ApiException FILE: app/Exceptions/Api/ThisPlaceholderCanNotBeInvitedUseTheMergeToolInsteadException.php class ThisPlaceholderCanNotBeInvitedUseTheMergeToolInsteadException (line 7) | class ThisPlaceholderCanNotBeInvitedUseTheMergeToolInsteadException exte... FILE: app/Exceptions/Api/TimeEntryCanNotBeRestartedApiException.php class TimeEntryCanNotBeRestartedApiException (line 7) | class TimeEntryCanNotBeRestartedApiException extends ApiException FILE: app/Exceptions/Api/TimeEntryStillRunningApiException.php class TimeEntryStillRunningApiException (line 7) | class TimeEntryStillRunningApiException extends ApiException FILE: app/Exceptions/Api/UserIsAlreadyMemberOfOrganizationApiException.php class UserIsAlreadyMemberOfOrganizationApiException (line 7) | class UserIsAlreadyMemberOfOrganizationApiException extends ApiException FILE: app/Exceptions/Api/UserIsAlreadyMemberOfProjectApiException.php class UserIsAlreadyMemberOfProjectApiException (line 7) | class UserIsAlreadyMemberOfProjectApiException extends ApiException FILE: app/Exceptions/Api/UserNotPlaceholderApiException.php class UserNotPlaceholderApiException (line 7) | class UserNotPlaceholderApiException extends ApiException FILE: app/Exceptions/Handler.php class Handler (line 12) | class Handler extends ExceptionHandler method register (line 28) | public function register(): void method render (line 35) | public function render($request, Throwable $e): Response|RedirectResponse FILE: app/Exceptions/MovedToApiException.php class MovedToApiException (line 9) | class MovedToApiException extends HttpException method __construct (line 11) | public function __construct() FILE: app/Extensions/Auditing/Resolvers/CustomIpAddressResolver.php class CustomIpAddressResolver (line 11) | class CustomIpAddressResolver implements Resolver method anonymizeIpAddress (line 13) | private static function anonymizeIpAddress(string $ipAddress): string method resolve (line 23) | public static function resolve(Auditable $auditable): string FILE: app/Extensions/Fortify/CustomLoginResponse.php class CustomLoginResponse (line 12) | class CustomLoginResponse extends LoginResponse method toResponse (line 19) | public function toResponse($request): Response FILE: app/Extensions/Fortify/CustomTwoFactorLoginResponse.php class CustomTwoFactorLoginResponse (line 13) | class CustomTwoFactorLoginResponse implements TwoFactorLoginResponseCont... method toResponse (line 20) | public function toResponse($request): Response FILE: app/Extensions/Scramble/ApiExceptionTypeToSchema.php class ApiExceptionTypeToSchema (line 17) | class ApiExceptionTypeToSchema extends ExceptionToResponseExtension method shouldHandle (line 19) | public function shouldHandle(Type $type): bool method toResponse (line 25) | public function toResponse(Type $type): Response method reference (line 53) | public function reference(ObjectType $type): Reference FILE: app/Extensions/Scramble/PaginatedResourceCollectionTypeToSchema.php class PaginatedResourceCollectionTypeToSchema (line 23) | class PaginatedResourceCollectionTypeToSchema extends TypeToSchemaExtension method shouldHandle (line 25) | public function shouldHandle(Type $type): bool method toSchema (line 31) | public function toSchema(Type $type): ?OpenApiObjectType method toResponse (line 94) | public function toResponse(Type $type): ?Response FILE: app/Filament/Resources/AuditResource.php class AuditResource (line 18) | class AuditResource extends Resource method form (line 26) | public static function form(Form $form): Form method table (line 52) | public static function table(Table $table): Table method getRelations (line 81) | public static function getRelations(): array method getPages (line 87) | public static function getPages(): array FILE: app/Filament/Resources/AuditResource/Pages/CreateAudit.php class CreateAudit (line 10) | class CreateAudit extends CreateRecord FILE: app/Filament/Resources/AuditResource/Pages/ListAudits.php class ListAudits (line 10) | class ListAudits extends ListRecords method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/AuditResource/Pages/ViewAudit.php class ViewAudit (line 10) | class ViewAudit extends ViewRecord FILE: app/Filament/Resources/ClientResource.php class ClientResource (line 17) | class ClientResource extends Resource method form (line 27) | public static function form(Form $form): Form method table (line 42) | public static function table(Table $table): Table method getRelations (line 81) | public static function getRelations(): array method getPages (line 88) | public static function getPages(): array FILE: app/Filament/Resources/ClientResource/Pages/CreateClient.php class CreateClient (line 10) | class CreateClient extends CreateRecord FILE: app/Filament/Resources/ClientResource/Pages/EditClient.php class EditClient (line 11) | class EditClient extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ClientResource/Pages/ListClients.php class ListClients (line 11) | class ListClients extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/FailedJobResource.php class FailedJobResource (line 29) | class FailedJobResource extends Resource method getNavigationBadge (line 37) | public static function getNavigationBadge(): ?string method form (line 42) | public static function form(Form $form): Form method table (line 58) | public static function table(Table $table): Table method getPages (line 111) | public static function getPages(): array FILE: app/Filament/Resources/FailedJobResource/Pages/ListFailedJobs.php class ListFailedJobs (line 14) | class ListFailedJobs extends ListRecords method getHeaderActions (line 18) | public function getHeaderActions(): array FILE: app/Filament/Resources/FailedJobResource/Pages/ViewFailedJobs.php class ViewFailedJobs (line 10) | class ViewFailedJobs extends ViewRecord FILE: app/Filament/Resources/OrganizationInvitationResource.php class OrganizationInvitationResource (line 19) | class OrganizationInvitationResource extends Resource method form (line 31) | public static function form(Form $form): Form method table (line 59) | public static function table(Table $table): Table method getRelations (line 100) | public static function getRelations(): array method getPages (line 106) | public static function getPages(): array FILE: app/Filament/Resources/OrganizationInvitationResource/Pages/EditOrganizationInvitation.php class EditOrganizationInvitation (line 11) | class EditOrganizationInvitation extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationInvitationResource/Pages/ListOrganizationInvitations.php class ListOrganizationInvitations (line 10) | class ListOrganizationInvitations extends ListRecords method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationInvitationResource/Pages/ViewOrganizationInvitation.php class ViewOrganizationInvitation (line 11) | class ViewOrganizationInvitation extends ViewRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationResource.php class OrganizationResource (line 35) | class OrganizationResource extends Resource method form (line 45) | public static function form(Form $form): Form method table (line 113) | public static function table(Table $table): Table method getRelations (line 237) | public static function getRelations(): array method getPages (line 245) | public static function getPages(): array FILE: app/Filament/Resources/OrganizationResource/Actions/DeleteOrganization.php class DeleteOrganization (line 13) | class DeleteOrganization extends DeleteAction method setUp (line 15) | protected function setUp(): void FILE: app/Filament/Resources/OrganizationResource/Pages/CreateOrganization.php class CreateOrganization (line 12) | class CreateOrganization extends CreateRecord method mutateFormDataBeforeCreate (line 16) | protected function mutateFormDataBeforeCreate(array $data): array method afterCreate (line 23) | protected function afterCreate(): void FILE: app/Filament/Resources/OrganizationResource/Pages/EditOrganization.php class EditOrganization (line 10) | class EditOrganization extends EditRecord method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationResource/Pages/ListOrganizations.php class ListOrganizations (line 11) | class ListOrganizations extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationResource/Pages/ViewOrganization.php class ViewOrganization (line 11) | class ViewOrganization extends ViewRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/OrganizationResource/RelationManagers/InvitationsRelationManager.php class InvitationsRelationManager (line 22) | class InvitationsRelationManager extends RelationManager method form (line 28) | public function form(Form $form): Form method table (line 49) | public function table(Table $table): Table FILE: app/Filament/Resources/OrganizationResource/RelationManagers/UsersRelationManager.php class UsersRelationManager (line 27) | class UsersRelationManager extends RelationManager method form (line 31) | public function form(Form $form): Form method table (line 44) | public function table(Table $table): Table FILE: app/Filament/Resources/ProjectMemberResource.php class ProjectMemberResource (line 15) | class ProjectMemberResource extends Resource method form (line 21) | public static function form(Form $form): Form method table (line 44) | public static function table(Table $table): Table method getRelations (line 76) | public static function getRelations(): array method getPages (line 83) | public static function getPages(): array FILE: app/Filament/Resources/ProjectMemberResource/Pages/CreateProjectMember.php class CreateProjectMember (line 10) | class CreateProjectMember extends CreateRecord FILE: app/Filament/Resources/ProjectMemberResource/Pages/EditProjectMember.php class EditProjectMember (line 11) | class EditProjectMember extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ProjectMemberResource/Pages/ListProjectMembers.php class ListProjectMembers (line 11) | class ListProjectMembers extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ProjectMemberResource/Pages/ViewProjectMembers.php class ViewProjectMembers (line 11) | class ViewProjectMembers extends ViewRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ProjectResource.php class ProjectResource (line 20) | class ProjectResource extends Resource method form (line 30) | public static function form(Form $form): Form method table (line 58) | public static function table(Table $table): Table method getRelations (line 94) | public static function getRelations(): array method getPages (line 101) | public static function getPages(): array FILE: app/Filament/Resources/ProjectResource/Pages/CreateProject.php class CreateProject (line 10) | class CreateProject extends CreateRecord FILE: app/Filament/Resources/ProjectResource/Pages/EditProject.php class EditProject (line 11) | class EditProject extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ProjectResource/Pages/ListProjects.php class ListProjects (line 11) | class ListProjects extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ProjectResource/RelationManagers/ProjectMembersRelationManager.php class ProjectMembersRelationManager (line 15) | class ProjectMembersRelationManager extends RelationManager method form (line 21) | public function form(Form $form): Form method table (line 28) | public function table(Table $table): Table FILE: app/Filament/Resources/ReportResource.php class ReportResource (line 23) | class ReportResource extends Resource method form (line 33) | public static function form(Form $form): Form method table (line 77) | public static function table(Table $table): Table method getRelations (line 127) | public static function getRelations(): array method getPages (line 133) | public static function getPages(): array FILE: app/Filament/Resources/ReportResource/Pages/EditReport.php class EditReport (line 11) | class EditReport extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ReportResource/Pages/ListReports.php class ListReports (line 10) | class ListReports extends ListRecords method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/ReportResource/Pages/ViewReport.php class ViewReport (line 11) | class ViewReport extends ViewRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TagResource.php class TagResource (line 17) | class TagResource extends Resource method form (line 27) | public static function form(Form $form): Form method table (line 42) | public static function table(Table $table): Table method getRelations (line 81) | public static function getRelations(): array method getPages (line 88) | public static function getPages(): array FILE: app/Filament/Resources/TagResource/Pages/CreateTag.php class CreateTag (line 10) | class CreateTag extends CreateRecord FILE: app/Filament/Resources/TagResource/Pages/EditTag.php class EditTag (line 11) | class EditTag extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TagResource/Pages/ListTags.php class ListTags (line 11) | class ListTags extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TaskResource.php class TaskResource (line 17) | class TaskResource extends Resource method form (line 27) | public static function form(Form $form): Form method table (line 46) | public static function table(Table $table): Table method getRelations (line 83) | public static function getRelations(): array method getPages (line 90) | public static function getPages(): array FILE: app/Filament/Resources/TaskResource/Pages/CreateTask.php class CreateTask (line 10) | class CreateTask extends CreateRecord FILE: app/Filament/Resources/TaskResource/Pages/EditTask.php class EditTask (line 11) | class EditTask extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TaskResource/Pages/ListTasks.php class ListTasks (line 11) | class ListTasks extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TimeEntryResource.php class TimeEntryResource (line 22) | class TimeEntryResource extends Resource method form (line 32) | public static function form(Form $form): Form method table (line 76) | public static function table(Table $table): Table method getRelations (line 124) | public static function getRelations(): array method getPages (line 131) | public static function getPages(): array FILE: app/Filament/Resources/TimeEntryResource/Pages/CreateTimeEntry.php class CreateTimeEntry (line 11) | class CreateTimeEntry extends CreateRecord method mutateFormDataBeforeCreate (line 19) | protected function mutateFormDataBeforeCreate(array $data): array FILE: app/Filament/Resources/TimeEntryResource/Pages/EditTimeEntry.php class EditTimeEntry (line 12) | class EditTimeEntry extends EditRecord method getHeaderActions (line 16) | protected function getHeaderActions(): array method mutateFormDataBeforeSave (line 28) | protected function mutateFormDataBeforeSave(array $data): array FILE: app/Filament/Resources/TimeEntryResource/Pages/ListTimeEntries.php class ListTimeEntries (line 11) | class ListTimeEntries extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TokenResource.php class TokenResource (line 17) | class TokenResource extends Resource method form (line 27) | public static function form(Form $form): Form method table (line 68) | public static function table(Table $table): Table method getRelations (line 130) | public static function getRelations(): array method getPages (line 136) | public static function getPages(): array FILE: app/Filament/Resources/TokenResource/Pages/ListTokens.php class ListTokens (line 10) | class ListTokens extends ListRecords method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/TokenResource/Pages/ViewToken.php class ViewToken (line 10) | class ViewToken extends ViewRecord method getHeaderActions (line 14) | protected function getHeaderActions(): array FILE: app/Filament/Resources/UserResource.php class UserResource (line 32) | class UserResource extends Resource method form (line 42) | public static function form(Form $form): Form method table (line 130) | public static function table(Table $table): Table method getRelations (line 222) | public static function getRelations(): array method getPages (line 230) | public static function getPages(): array FILE: app/Filament/Resources/UserResource/Actions/DeleteUser.php class DeleteUser (line 13) | class DeleteUser extends DeleteAction method setUp (line 15) | protected function setUp(): void FILE: app/Filament/Resources/UserResource/Pages/CreateUser.php class CreateUser (line 13) | class CreateUser extends CreateRecord method handleRecordCreation (line 17) | protected function handleRecordCreation(array $data): User FILE: app/Filament/Resources/UserResource/Pages/EditUser.php class EditUser (line 11) | class EditUser extends EditRecord method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/UserResource/Pages/ListUsers.php class ListUsers (line 11) | class ListUsers extends ListRecords method getHeaderActions (line 15) | protected function getHeaderActions(): array FILE: app/Filament/Resources/UserResource/Pages/ViewUser.php class ViewUser (line 12) | class ViewUser extends ViewRecord method getHeaderActions (line 16) | protected function getHeaderActions(): array FILE: app/Filament/Resources/UserResource/RelationManagers/OrganizationsRelationManager.php class OrganizationsRelationManager (line 23) | class OrganizationsRelationManager extends RelationManager method form (line 27) | public function form(Form $form): Form method table (line 36) | public function table(Table $table): Table FILE: app/Filament/Resources/UserResource/RelationManagers/OwnedOrganizationsRelationManager.php class OwnedOrganizationsRelationManager (line 15) | class OwnedOrganizationsRelationManager extends RelationManager method form (line 21) | public function form(Form $form): Form method table (line 28) | public function table(Table $table): Table FILE: app/Filament/Widgets/ActiveUserOverview.php class ActiveUserOverview (line 13) | class ActiveUserOverview extends BaseWidget method getCards (line 19) | protected function getCards(): array FILE: app/Filament/Widgets/ServerOverview.php class ServerOverview (line 10) | class ServerOverview extends Widget method getViewData (line 17) | protected function getViewData(): array FILE: app/Filament/Widgets/TimeEntriesCreated.php class TimeEntriesCreated (line 12) | class TimeEntriesCreated extends ChartWidget method getData (line 20) | protected function getData(): array method getFilters (line 64) | protected function getFilters(): ?array method getType (line 73) | protected function getType(): string FILE: app/Filament/Widgets/TimeEntriesImported.php class TimeEntriesImported (line 12) | class TimeEntriesImported extends ChartWidget method getData (line 20) | protected function getData(): array method getFilters (line 64) | protected function getFilters(): ?array method getType (line 73) | protected function getType(): string FILE: app/Filament/Widgets/UserRegistrations.php class UserRegistrations (line 12) | class UserRegistrations extends ChartWidget method getData (line 20) | protected function getData(): array method getFilters (line 65) | protected function getFilters(): ?array method getType (line 74) | protected function getType(): string FILE: app/Http/Controllers/Api/V1/ApiTokenController.php class ApiTokenController (line 18) | class ApiTokenController extends Controller method index (line 29) | public function index(): ApiTokenCollection method store (line 54) | public function store(ApiTokenStoreRequest $request): ApiTokenWithAcce... method revoke (line 83) | public function revoke(Token $apiToken): JsonResponse method destroy (line 106) | public function destroy(Token $apiToken): JsonResponse FILE: app/Http/Controllers/Api/V1/ChartController.php class ChartController (line 14) | class ChartController extends Controller method weeklyProjectOverview (line 25) | public function weeklyProjectOverview(Organization $organization, Dash... method latestTasks (line 44) | public function latestTasks(Organization $organization, DashboardServi... method lastSevenDays (line 63) | public function lastSevenDays(Organization $organization, DashboardSer... method latestTeamActivity (line 82) | public function latestTeamActivity(Organization $organization, Dashboa... method dailyTrackedHours (line 100) | public function dailyTrackedHours(Organization $organization, Dashboar... method totalWeeklyTime (line 119) | public function totalWeeklyTime(Organization $organization, DashboardS... method totalWeeklyBillableTime (line 138) | public function totalWeeklyBillableTime(Organization $organization, Da... method totalWeeklyBillableAmount (line 157) | public function totalWeeklyBillableAmount(Organization $organization, ... method weeklyHistory (line 181) | public function weeklyHistory(Organization $organization, DashboardSer... FILE: app/Http/Controllers/Api/V1/ClientController.php class ClientController (line 19) | class ClientController extends Controller method checkPermission (line 21) | protected function checkPermission(Organization $organization, string ... method index (line 38) | public function index(Organization $organization, ClientIndexRequest $... method store (line 71) | public function store(Organization $organization, ClientStoreRequest $... method update (line 90) | public function update(Organization $organization, Client $client, Cli... method destroy (line 110) | public function destroy(Organization $organization, Client $client): J... FILE: app/Http/Controllers/Api/V1/Controller.php class Controller (line 12) | class Controller extends \App\Http\Controllers\Controller method __construct (line 14) | public function __construct( method checkPermission (line 21) | protected function checkPermission(Organization $organization, string ... method checkAnyPermission (line 33) | protected function checkAnyPermission(Organization $organization, arra... method hasPermission (line 43) | protected function hasPermission(Organization $organization, string $p... method canAccessPremiumFeatures (line 48) | protected function canAccessPremiumFeatures(Organization $organization... FILE: app/Http/Controllers/Api/V1/CurrencyController.php class CurrencyController (line 13) | class CurrencyController extends Controller method index (line 22) | public function index(): JsonResponse FILE: app/Http/Controllers/Api/V1/ExportController.php class ExportController (line 15) | class ExportController extends Controller method export (line 25) | public function export(Organization $organization, ExportService $expo... FILE: app/Http/Controllers/Api/V1/ImportController.php class ImportController (line 16) | class ImportController extends Controller method index (line 27) | public function index(Organization $organization, ImporterProvider $im... method import (line 58) | public function import(Organization $organization, ImportRequest $requ... FILE: app/Http/Controllers/Api/V1/InvitationController.php class InvitationController (line 20) | class InvitationController extends Controller method checkPermission (line 22) | protected function checkPermission(Organization $organization, string ... method index (line 39) | public function index(Organization $organization, InvitationIndexReque... method store (line 59) | public function store(Organization $organization, InvitationStoreReque... method resend (line 78) | public function resend(Organization $organization, OrganizationInvitat... method destroy (line 94) | public function destroy(Organization $organization, OrganizationInvita... FILE: app/Http/Controllers/Api/V1/MemberController.php class MemberController (line 37) | class MemberController extends Controller method checkPermission (line 39) | protected function checkPermission(Organization $organization, string ... method index (line 56) | public function index(Organization $organization, MemberIndexRequest $... method update (line 80) | public function update(Organization $organization, Member $member, Mem... method destroy (line 106) | public function destroy(MemberDestroyRequest $request, Organization $o... method makePlaceholder (line 125) | public function makePlaceholder(Organization $organization, Member $me... method mergeInto (line 152) | public function mergeInto(Organization $organization, Member $member, ... method invitePlaceholder (line 182) | public function invitePlaceholder(Organization $organization, Member $... FILE: app/Http/Controllers/Api/V1/OrganizationController.php class OrganizationController (line 14) | class OrganizationController extends Controller method show (line 23) | public function show(Organization $organization): OrganizationResource method update (line 39) | public function update(Organization $organization, OrganizationUpdateR... FILE: app/Http/Controllers/Api/V1/ProjectController.php class ProjectController (line 25) | class ProjectController extends Controller method checkPermission (line 27) | protected function checkPermission(Organization $organization, string ... method index (line 44) | public function index(Organization $organization, ProjectIndexRequest ... method show (line 79) | public function show(Organization $organization, Project $project): Js... method store (line 98) | public function store(Organization $organization, ProjectStoreRequest ... method update (line 124) | public function update(Organization $organization, Project $project, P... method destroy (line 168) | public function destroy(Organization $organization, Project $project):... FILE: app/Http/Controllers/Api/V1/ProjectMemberController.php class ProjectMemberController (line 23) | class ProjectMemberController extends Controller method checkPermission (line 25) | protected function checkPermission(Organization $organization, string ... method index (line 45) | public function index(Organization $organization, Project $project, Pr... method store (line 64) | public function store(Organization $organization, Project $project, Pr... method update (line 97) | public function update(Organization $organization, ProjectMember $proj... method destroy (line 118) | public function destroy(Organization $organization, ProjectMember $pro... FILE: app/Http/Controllers/Api/V1/Public/ReportController.php class ReportController (line 19) | class ReportController extends Controller method show (line 30) | public function show(Request $request, TimeEntryAggregationService $ti... FILE: app/Http/Controllers/Api/V1/ReportController.php class ReportController (line 22) | class ReportController extends Controller method checkPermission (line 27) | protected function checkPermission(Organization $organization, string ... method index (line 44) | public function index(Organization $organization, ReportIndexRequest $... method show (line 63) | public function show(Organization $organization, Report $report): Deta... method store (line 77) | public function store(Organization $organization, ReportStoreRequest $... method update (line 134) | public function update(Organization $organization, Report $report, Rep... method destroy (line 170) | public function destroy(Organization $organization, Report $report): J... FILE: app/Http/Controllers/Api/V1/TagController.php class TagController (line 19) | class TagController extends Controller method checkPermission (line 21) | protected function checkPermission(Organization $organization, string ... method index (line 38) | public function index(Organization $organization, TagIndexRequest $req... method store (line 57) | public function store(Organization $organization, TagStoreRequest $req... method update (line 76) | public function update(Organization $organization, Tag $tag, TagUpdate... method destroy (line 93) | public function destroy(Organization $organization, Tag $tag): JsonRes... FILE: app/Http/Controllers/Api/V1/TaskController.php class TaskController (line 21) | class TaskController extends Controller method checkPermission (line 23) | protected function checkPermission(Organization $organization, string ... method checkScopedPermissionForProject (line 36) | private function checkScopedPermissionForProject(Organization $organiz... method index (line 60) | public function index(Organization $organization, TaskIndexRequest $re... method store (line 99) | public function store(Organization $organization, TaskStoreRequest $re... method update (line 129) | public function update(Organization $organization, Task $task, TaskUpd... method destroy (line 161) | public function destroy(Organization $organization, Task $task): JsonR... FILE: app/Http/Controllers/Api/V1/TimeEntryController.php class TimeEntryController (line 59) | class TimeEntryController extends Controller method assertNoOverlap (line 61) | private function assertNoOverlap(Organization $organization, Member $m... method checkPermission (line 98) | protected function checkPermission(Organization $organization, string ... method index (line 118) | public function index(Organization $organization, TimeEntryIndexReques... method getTimeEntriesQuery (line 183) | private function getTimeEntriesQuery(Organization $organization, TimeE... method indexExport (line 220) | public function indexExport(Organization $organization, TimeEntryIndex... method aggregate (line 369) | public function aggregate(Organization $organization, TimeEntryAggrega... method aggregateExport (line 418) | public function aggregateExport(Organization $organization, TimeEntryA... method getTimeEntriesAggregateQuery (line 549) | private function getTimeEntriesAggregateQuery(Organization $organizati... method store (line 577) | public function store(Organization $organization, TimeEntryStoreReques... method update (line 626) | public function update(Organization $organization, TimeEntry $timeEntr... method updateMultiple (line 689) | public function updateMultiple(Organization $organization, TimeEntryUp... method destroy (line 789) | public function destroy(Organization $organization, TimeEntry $timeEnt... method destroyMultiple (line 820) | public function destroyMultiple(Organization $organization, TimeEntryD... FILE: app/Http/Controllers/Api/V1/UserController.php class UserController (line 10) | class UserController extends Controller method me (line 21) | public function me(): UserResource FILE: app/Http/Controllers/Api/V1/UserMembershipController.php class UserMembershipController (line 12) | class UserMembershipController extends Controller method myMemberships (line 25) | public function myMemberships(): JsonResource FILE: app/Http/Controllers/Api/V1/UserTimeEntryController.php class UserTimeEntryController (line 15) | class UserTimeEntryController extends Controller method myActive (line 24) | public function myActive(): JsonResource FILE: app/Http/Controllers/Controller.php class Controller (line 17) | class Controller extends BaseController method user (line 25) | protected function user(): User method member (line 40) | protected function member(Organization $organization): Member method currentOrganization (line 59) | protected function currentOrganization(): Organization FILE: app/Http/Controllers/Web/Controller.php class Controller (line 7) | abstract class Controller extends \App\Http\Controllers\Controller {} FILE: app/Http/Controllers/Web/DashboardController.php class DashboardController (line 14) | class DashboardController extends Controller method dashboard (line 19) | public function dashboard(DashboardService $dashboardService, Permissi... FILE: app/Http/Controllers/Web/HealthCheckController.php class HealthCheckController (line 15) | class HealthCheckController extends Controller method up (line 21) | public function up(): JsonResponse method debug (line 32) | public function debug(Request $request): JsonResponse FILE: app/Http/Controllers/Web/HomeController.php class HomeController (line 10) | class HomeController extends Controller method index (line 12) | public function index(): RedirectResponse FILE: app/Http/Kernel.php class Kernel (line 11) | class Kernel extends HttpKernel FILE: app/Http/Middleware/Authenticate.php class Authenticate (line 10) | class Authenticate extends Middleware method redirectTo (line 15) | protected function redirectTo(Request $request): ?string FILE: app/Http/Middleware/CheckOrganizationBlocked.php class CheckOrganizationBlocked (line 14) | class CheckOrganizationBlocked method handle (line 23) | public function handle(Request $request, Closure $next): Response FILE: app/Http/Middleware/EncryptCookies.php class EncryptCookies (line 9) | class EncryptCookies extends Middleware FILE: app/Http/Middleware/EnsureEmailIsVerified.php class EnsureEmailIsVerified (line 13) | class EnsureEmailIsVerified method handle (line 18) | public function handle(Request $request, Closure $next, ?string $redir... FILE: app/Http/Middleware/ForceHttps.php class ForceHttps (line 12) | class ForceHttps method handle (line 19) | public function handle(Request $request, Closure $next, string ...$gua... FILE: app/Http/Middleware/ForceJsonResponse.php class ForceJsonResponse (line 11) | class ForceJsonResponse method handle (line 18) | public function handle(Request $request, Closure $next, string ...$gua... FILE: app/Http/Middleware/HandleInertiaRequests.php class HandleInertiaRequests (line 12) | class HandleInertiaRequests extends Middleware method version (line 28) | public function version(Request $request): ?string method share (line 40) | public function share(Request $request): array FILE: app/Http/Middleware/PreventRequestsDuringMaintenance.php class PreventRequestsDuringMaintenance (line 9) | class PreventRequestsDuringMaintenance extends Middleware FILE: app/Http/Middleware/RedirectIfAuthenticated.php class RedirectIfAuthenticated (line 13) | class RedirectIfAuthenticated method handle (line 20) | public function handle(Request $request, Closure $next, string ...$gua... FILE: app/Http/Middleware/ShareInertiaData.php class ShareInertiaData (line 20) | class ShareInertiaData method handle (line 25) | public function handle(Request $request, Closure $next): Response FILE: app/Http/Middleware/TrimStrings.php class TrimStrings (line 9) | class TrimStrings extends Middleware FILE: app/Http/Middleware/TrustProxies.php class TrustProxies (line 10) | class TrustProxies extends Middleware FILE: app/Http/Middleware/ValidateSignature.php class ValidateSignature (line 9) | class ValidateSignature extends Middleware FILE: app/Http/Middleware/VerifyCsrfToken.php class VerifyCsrfToken (line 9) | class VerifyCsrfToken extends Middleware FILE: app/Http/Requests/V1/ApiToken/ApiTokenStoreRequest.php class ApiTokenStoreRequest (line 9) | class ApiTokenStoreRequest extends BaseFormRequest method rules (line 16) | public function rules(): array method getName (line 28) | public function getName(): string FILE: app/Http/Requests/V1/BaseFormRequest.php class BaseFormRequest (line 9) | class BaseFormRequest extends FormRequest method moneyRules (line 14) | protected function moneyRules(bool $bigInt = false): array FILE: app/Http/Requests/V1/Client/ClientIndexRequest.php class ClientIndexRequest (line 10) | class ClientIndexRequest extends BaseFormRequest method rules (line 17) | public function rules(): array method getFilterArchived (line 32) | public function getFilterArchived(): string FILE: app/Http/Requests/V1/Client/ClientStoreRequest.php class ClientStoreRequest (line 17) | class ClientStoreRequest extends BaseFormRequest method rules (line 24) | public function rules(): array FILE: app/Http/Requests/V1/Client/ClientUpdateRequest.php class ClientUpdateRequest (line 18) | class ClientUpdateRequest extends BaseFormRequest method rules (line 25) | public function rules(): array method getIsArchived (line 45) | public function getIsArchived(): bool FILE: app/Http/Requests/V1/Import/ImportRequest.php class ImportRequest (line 10) | class ImportRequest extends BaseFormRequest method rules (line 17) | public function rules(): array FILE: app/Http/Requests/V1/Invitation/InvitationIndexRequest.php class InvitationIndexRequest (line 14) | class InvitationIndexRequest extends BaseFormRequest method rules (line 21) | public function rules(): array FILE: app/Http/Requests/V1/Invitation/InvitationStoreRequest.php class InvitationStoreRequest (line 16) | class InvitationStoreRequest extends BaseFormRequest method rules (line 23) | public function rules(): array method getRole (line 39) | public function getRole(): Role method getEmail (line 44) | public function getEmail(): string FILE: app/Http/Requests/V1/Member/MemberDestroyRequest.php class MemberDestroyRequest (line 14) | class MemberDestroyRequest extends BaseFormRequest method rules (line 21) | public function rules(): array method getDeleteRelated (line 31) | public function getDeleteRelated(): bool FILE: app/Http/Requests/V1/Member/MemberIndexRequest.php class MemberIndexRequest (line 14) | class MemberIndexRequest extends BaseFormRequest method rules (line 21) | public function rules(): array FILE: app/Http/Requests/V1/Member/MemberMergeIntoRequest.php class MemberMergeIntoRequest (line 17) | class MemberMergeIntoRequest extends BaseFormRequest method rules (line 24) | public function rules(): array method getMemberId (line 38) | public function getMemberId(): string FILE: app/Http/Requests/V1/Member/MemberUpdateRequest.php class MemberUpdateRequest (line 16) | class MemberUpdateRequest extends BaseFormRequest method rules (line 23) | public function rules(): array method getBillableRate (line 39) | public function getBillableRate(): ?int method getRole (line 46) | public function getRole(): Role FILE: app/Http/Requests/V1/Organization/OrganizationUpdateRequest.php class OrganizationUpdateRequest (line 19) | class OrganizationUpdateRequest extends BaseFormRequest method rules (line 26) | public function rules(): array method getName (line 66) | public function getName(): ?string method getNumberFormat (line 71) | public function getNumberFormat(): ?NumberFormat method getCurrencyFormat (line 76) | public function getCurrencyFormat(): ?CurrencyFormat method getDateFormat (line 81) | public function getDateFormat(): ?DateFormat method getIntervalFormat (line 86) | public function getIntervalFormat(): ?IntervalFormat method getTimeFormat (line 91) | public function getTimeFormat(): ?TimeFormat method getBillableRate (line 96) | public function getBillableRate(): ?int method getEmployeesCanSeeBillableRates (line 103) | public function getEmployeesCanSeeBillableRates(): ?bool method getEmployeesCanManageTasks (line 108) | public function getEmployeesCanManageTasks(): ?bool method getPreventOverlappingTimeEntries (line 113) | public function getPreventOverlappingTimeEntries(): ?bool FILE: app/Http/Requests/V1/Project/ProjectIndexRequest.php class ProjectIndexRequest (line 10) | class ProjectIndexRequest extends BaseFormRequest method rules (line 17) | public function rules(): array method getFilterArchived (line 32) | public function getFilterArchived(): string FILE: app/Http/Requests/V1/Project/ProjectStoreRequest.php class ProjectStoreRequest (line 21) | class ProjectStoreRequest extends BaseFormRequest method rules (line 28) | public function rules(): array method getIsPublic (line 87) | public function getIsPublic(): bool method getBillableRate (line 92) | public function getBillableRate(): ?int method getEstimatedTime (line 99) | public function getEstimatedTime(): ?int FILE: app/Http/Requests/V1/Project/ProjectUpdateRequest.php class ProjectUpdateRequest (line 22) | class ProjectUpdateRequest extends BaseFormRequest method rules (line 29) | public function rules(): array method getIsArchived (line 86) | public function getIsArchived(): bool method getBillableRate (line 93) | public function getBillableRate(): ?int method getEstimatedTime (line 100) | public function getEstimatedTime(): ?int FILE: app/Http/Requests/V1/ProjectMember/ProjectMemberIndexRequest.php class ProjectMemberIndexRequest (line 10) | class ProjectMemberIndexRequest extends BaseFormRequest method rules (line 17) | public function rules(): array FILE: app/Http/Requests/V1/ProjectMember/ProjectMemberStoreRequest.php class ProjectMemberStoreRequest (line 17) | class ProjectMemberStoreRequest extends BaseFormRequest method rules (line 24) | public function rules(): array method getBillableRate (line 43) | public function getBillableRate(): ?int FILE: app/Http/Requests/V1/ProjectMember/ProjectMemberUpdateRequest.php class ProjectMemberUpdateRequest (line 14) | class ProjectMemberUpdateRequest extends BaseFormRequest method rules (line 21) | public function rules(): array method getBillableRate (line 33) | public function getBillableRate(): ?int FILE: app/Http/Requests/V1/Report/ReportIndexRequest.php class ReportIndexRequest (line 10) | class ReportIndexRequest extends BaseFormRequest method rules (line 17) | public function rules(): array FILE: app/Http/Requests/V1/Report/ReportStoreRequest.php class ReportStoreRequest (line 23) | class ReportStoreRequest extends BaseFormRequest method rules (line 30) | public function rules(): array method getName (line 177) | public function getName(): string method getDescription (line 182) | public function getDescription(): ?string method getIsPublic (line 187) | public function getIsPublic(): bool method getPublicUntil (line 192) | public function getPublicUntil(): ?Carbon method getPropertyStart (line 199) | public function getPropertyStart(): Carbon method getPropertyEnd (line 209) | public function getPropertyEnd(): Carbon method getPropertyActive (line 219) | public function getPropertyActive(): ?bool method getPropertyBillable (line 228) | public function getPropertyBillable(): ?bool method getPropertyGroup (line 237) | public function getPropertyGroup(): TimeEntryAggregationType method getPropertySubGroup (line 242) | public function getPropertySubGroup(): TimeEntryAggregationType method getPropertyHistoryGroup (line 247) | public function getPropertyHistoryGroup(): TimeEntryAggregationTypeInt... method getPropertyRoundingType (line 252) | public function getPropertyRoundingType(): ?TimeEntryRoundingType method getPropertyRoundingMinutes (line 261) | public function getPropertyRoundingMinutes(): ?int FILE: app/Http/Requests/V1/Report/ReportUpdateRequest.php class ReportUpdateRequest (line 15) | class ReportUpdateRequest extends BaseFormRequest method rules (line 22) | public function rules(): array method getName (line 44) | public function getName(): string method getDescription (line 49) | public function getDescription(): ?string method getIsPublic (line 54) | public function getIsPublic(): bool method getPublicUntil (line 59) | public function getPublicUntil(): ?Carbon FILE: app/Http/Requests/V1/Tag/TagIndexRequest.php class TagIndexRequest (line 10) | class TagIndexRequest extends BaseFormRequest method rules (line 17) | public function rules(): array FILE: app/Http/Requests/V1/Tag/TagStoreRequest.php class TagStoreRequest (line 17) | class TagStoreRequest extends BaseFormRequest method rules (line 24) | public function rules(): array FILE: app/Http/Requests/V1/Tag/TagUpdateRequest.php class TagUpdateRequest (line 18) | class TagUpdateRequest extends BaseFormRequest method rules (line 25) | public function rules(): array FILE: app/Http/Requests/V1/Task/TaskIndexRequest.php class TaskIndexRequest (line 19) | class TaskIndexRequest extends BaseFormRequest method rules (line 26) | public function rules(): array method getFilterDone (line 53) | public function getFilterDone(): string FILE: app/Http/Requests/V1/Task/TaskStoreRequest.php class TaskStoreRequest (line 19) | class TaskStoreRequest extends BaseFormRequest method rules (line 26) | public function rules(): array method getEstimatedTime (line 56) | public function getEstimatedTime(): ?int FILE: app/Http/Requests/V1/Task/TaskUpdateRequest.php class TaskUpdateRequest (line 18) | class TaskUpdateRequest extends BaseFormRequest method rules (line 25) | public function rules(): array method getIsDone (line 51) | public function getIsDone(): bool method getEstimatedTime (line 58) | public function getEstimatedTime(): ?int FILE: app/Http/Requests/V1/TimeEntry/TimeEntryAggregateExportRequest.php class TimeEntryAggregateExportRequest (line 29) | class TimeEntryAggregateExportRequest extends BaseFormRequest method rules (line 36) | public function rules(): array method getDebug (line 204) | public function getDebug(): bool method getGroup (line 209) | public function getGroup(): TimeEntryAggregationType method getSubGroup (line 214) | public function getSubGroup(): TimeEntryAggregationType method getHistoryGroup (line 219) | public function getHistoryGroup(): TimeEntryAggregationType method getStart (line 224) | public function getStart(): Carbon method getEnd (line 234) | public function getEnd(): Carbon method getFormatValue (line 244) | public function getFormatValue(): ExportFormat method getRoundingType (line 249) | public function getRoundingType(): ?TimeEntryRoundingType method getRoundingMinutes (line 258) | public function getRoundingMinutes(): ?int FILE: app/Http/Requests/V1/TimeEntry/TimeEntryAggregateRequest.php class TimeEntryAggregateRequest (line 27) | class TimeEntryAggregateRequest extends BaseFormRequest method rules (line 34) | public function rules(): array method getGroup (line 186) | public function getGroup(): ?TimeEntryAggregationType method getSubGroup (line 191) | public function getSubGroup(): ?TimeEntryAggregationType method getFillGapsInTimeGroups (line 196) | public function getFillGapsInTimeGroups(): bool method getStart (line 201) | public function getStart(): ?Carbon method getEnd (line 206) | public function getEnd(): ?Carbon method getRoundingType (line 211) | public function getRoundingType(): ?TimeEntryRoundingType method getRoundingMinutes (line 220) | public function getRoundingMinutes(): ?int FILE: app/Http/Requests/V1/TimeEntry/TimeEntryDestroyMultipleRequest.php class TimeEntryDestroyMultipleRequest (line 14) | class TimeEntryDestroyMultipleRequest extends BaseFormRequest method rules (line 21) | public function rules(): array FILE: app/Http/Requests/V1/TimeEntry/TimeEntryIndexExportRequest.php class TimeEntryIndexExportRequest (line 25) | class TimeEntryIndexExportRequest extends TimeEntryIndexRequest method rules (line 32) | public function rules(): array method getDebug (line 183) | public function getDebug(): bool method getStart (line 188) | public function getStart(): Carbon method getEnd (line 198) | public function getEnd(): Carbon method getOnlyFullDates (line 208) | public function getOnlyFullDates(): bool method getFormatValue (line 213) | public function getFormatValue(): ExportFormat method getRoundingType (line 218) | public function getRoundingType(): ?TimeEntryRoundingType method getRoundingMinutes (line 227) | public function getRoundingMinutes(): ?int FILE: app/Http/Requests/V1/TimeEntry/TimeEntryIndexRequest.php class TimeEntryIndexRequest (line 25) | class TimeEntryIndexRequest extends BaseFormRequest method rules (line 32) | public function rules(): array method getOnlyFullDates (line 178) | public function getOnlyFullDates(): bool method getLimit (line 183) | public function getLimit(): int method getOffset (line 188) | public function getOffset(): int method getRoundingType (line 193) | public function getRoundingType(): ?TimeEntryRoundingType method getRoundingMinutes (line 202) | public function getRoundingMinutes(): ?int FILE: app/Http/Requests/V1/TimeEntry/TimeEntryStoreRequest.php class TimeEntryStoreRequest (line 22) | class TimeEntryStoreRequest extends BaseFormRequest method rules (line 29) | public function rules(): array FILE: app/Http/Requests/V1/TimeEntry/TimeEntryUpdateMultipleRequest.php class TimeEntryUpdateMultipleRequest (line 22) | class TimeEntryUpdateMultipleRequest extends BaseFormRequest method rules (line 29) | public function rules(): array FILE: app/Http/Requests/V1/TimeEntry/TimeEntryUpdateRequest.php class TimeEntryUpdateRequest (line 22) | class TimeEntryUpdateRequest extends BaseFormRequest method rules (line 29) | public function rules(): array FILE: app/Http/Resources/PaginatedResourceCollection.php type PaginatedResourceCollection (line 7) | interface PaginatedResourceCollection {} FILE: app/Http/Resources/V1/ApiToken/ApiTokenCollection.php class ApiTokenCollection (line 9) | class ApiTokenCollection extends ResourceCollection FILE: app/Http/Resources/V1/ApiToken/ApiTokenResource.php class ApiTokenResource (line 14) | class ApiTokenResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/ApiToken/ApiTokenWithAccessTokenResource.php class ApiTokenWithAccessTokenResource (line 14) | class ApiTokenWithAccessTokenResource extends BaseResource method __construct (line 18) | public function __construct(Token $resource, string $accessToken) method toArray (line 29) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/BaseResource.php class BaseResource (line 10) | abstract class BaseResource extends JsonResource method formatDateTime (line 12) | protected function formatDateTime(?Carbon $carbon): ?string method formatDate (line 17) | protected function formatDate(?Carbon $carbon): ?string FILE: app/Http/Resources/V1/Client/ClientCollection.php class ClientCollection (line 10) | class ClientCollection extends ResourceCollection implements PaginatedRe... FILE: app/Http/Resources/V1/Client/ClientResource.php class ClientResource (line 14) | class ClientResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Invitation/InvitationCollection.php class InvitationCollection (line 10) | class InvitationCollection extends ResourceCollection implements Paginat... FILE: app/Http/Resources/V1/Invitation/InvitationResource.php class InvitationResource (line 14) | class InvitationResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Member/MemberCollection.php class MemberCollection (line 10) | class MemberCollection extends ResourceCollection implements PaginatedRe... FILE: app/Http/Resources/V1/Member/MemberResource.php class MemberResource (line 15) | class MemberResource extends BaseResource method toArray (line 22) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Member/PersonalMembershipCollection.php class PersonalMembershipCollection (line 10) | class PersonalMembershipCollection extends ResourceCollection implements... FILE: app/Http/Resources/V1/Member/PersonalMembershipResource.php class PersonalMembershipResource (line 14) | class PersonalMembershipResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Organization/OrganizationResource.php class OrganizationResource (line 20) | class OrganizationResource extends BaseResource method __construct (line 29) | public function __construct(Organization $resource, bool $showBillable... method toArray (line 41) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Project/ProjectCollection.php class ProjectCollection (line 12) | class ProjectCollection extends ResourceCollection implements PaginatedR... method __construct (line 16) | public function __construct($resource, bool $showBillableRates) method collects (line 22) | protected function collects(): ?string method toArray (line 32) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Project/ProjectResource.php class ProjectResource (line 14) | class ProjectResource extends BaseResource method __construct (line 18) | public function __construct(Project $resource, bool $showBillableRate) method toArray (line 30) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/ProjectMember/ProjectMemberCollection.php class ProjectMemberCollection (line 10) | class ProjectMemberCollection extends ResourceCollection implements Pagi... FILE: app/Http/Resources/V1/ProjectMember/ProjectMemberResource.php class ProjectMemberResource (line 14) | class ProjectMemberResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Report/DetailedReportResource.php class DetailedReportResource (line 14) | class DetailedReportResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Report/DetailedWithDataReportResource.php class DetailedWithDataReportResource (line 43) | class DetailedWithDataReportResource extends BaseResource method __construct (line 59) | public function __construct(Report $resource, array $data, array $hist... method toArray (line 71) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Report/ReportCollection.php class ReportCollection (line 10) | class ReportCollection extends ResourceCollection implements PaginatedRe... FILE: app/Http/Resources/V1/Report/ReportResource.php class ReportResource (line 14) | class ReportResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Tag/TagCollection.php class TagCollection (line 10) | class TagCollection extends ResourceCollection implements PaginatedResou... FILE: app/Http/Resources/V1/Tag/TagResource.php class TagResource (line 14) | class TagResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/Task/TaskCollection.php class TaskCollection (line 10) | class TaskCollection extends ResourceCollection implements PaginatedReso... FILE: app/Http/Resources/V1/Task/TaskResource.php class TaskResource (line 15) | class TaskResource extends BaseResource method toArray (line 22) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/TimeEntry/TimeEntryCollection.php class TimeEntryCollection (line 10) | class TimeEntryCollection extends ResourceCollection implements Paginate... FILE: app/Http/Resources/V1/TimeEntry/TimeEntryResource.php class TimeEntryResource (line 14) | class TimeEntryResource extends BaseResource method toArray (line 21) | public function toArray(Request $request): array FILE: app/Http/Resources/V1/User/UserResource.php class UserResource (line 15) | class UserResource extends BaseResource method toArray (line 22) | public function toArray(Request $request): array FILE: app/Jobs/RecalculateSpentTimeForProject.php class RecalculateSpentTimeForProject (line 16) | class RecalculateSpentTimeForProject implements ShouldDispatchAfterCommi... method __construct (line 28) | public function __construct(Project $project) method handle (line 38) | public function handle(): void FILE: app/Jobs/RecalculateSpentTimeForTask.php class RecalculateSpentTimeForTask (line 16) | class RecalculateSpentTimeForTask implements ShouldDispatchAfterCommit, ... method __construct (line 28) | public function __construct(Task $task) method handle (line 38) | public function handle(): void FILE: app/Jobs/Test/TestJob.php class TestJob (line 16) | class TestJob implements ShouldQueue method __construct (line 32) | public function __construct(User $user, string $message, bool $fail = ... method handle (line 44) | public function handle(): void FILE: app/Listeners/RemovePlaceholder.php class RemovePlaceholder (line 13) | class RemovePlaceholder method handle (line 18) | public function handle(TeamMemberAdded $event): void FILE: app/Mail/AuthApiTokenExpirationReminderMail.php class AuthApiTokenExpirationReminderMail (line 14) | class AuthApiTokenExpirationReminderMail extends Mailable method __construct (line 27) | public function __construct(Token $token, User $user) method build (line 36) | public function build(): self FILE: app/Mail/AuthApiTokenExpiredMail.php class AuthApiTokenExpiredMail (line 14) | class AuthApiTokenExpiredMail extends Mailable method __construct (line 27) | public function __construct(Token $token, User $user) method build (line 36) | public function build(): self FILE: app/Mail/OrganizationInvitationMail.php class OrganizationInvitationMail (line 13) | class OrganizationInvitationMail extends Mailable method __construct (line 24) | public function __construct(OrganizationInvitation $invitation) method build (line 32) | public function build(): self FILE: app/Mail/TimeEntryStillRunningMail.php class TimeEntryStillRunningMail (line 14) | class TimeEntryStillRunningMail extends Mailable method __construct (line 27) | public function __construct(TimeEntry $timeEntry, User $user) method build (line 36) | public function build(): self FILE: app/Models/Audit.php class Audit (line 30) | class Audit extends PackageAuditModel FILE: app/Models/Client.php class Client (line 31) | class Client extends Model implements AuditableContract method organization (line 53) | public function organization(): BelongsTo method projects (line 61) | public function projects(): HasMany method scopeVisibleByEmployee (line 70) | public function scopeVisibleByEmployee(Builder $builder, User $user): ... method isArchived (line 81) | protected function isArchived(): Attribute FILE: app/Models/Concerns/CustomAuditable.php type CustomAuditable (line 9) | trait CustomAuditable method disableAuditing (line 18) | public function disableAuditing(): void FILE: app/Models/Concerns/HasUuids.php type HasUuids (line 9) | trait HasUuids method newUniqueId (line 16) | public function newUniqueId(): string FILE: app/Models/FailedJob.php class FailedJob (line 18) | class FailedJob extends Model FILE: app/Models/Member.php class Member (line 33) | class Member extends JetstreamMembership implements AuditableContract method user (line 52) | public function user(): BelongsTo method organization (line 60) | public function organization(): BelongsTo method timeEntries (line 68) | public function timeEntries(): HasMany method projectMembers (line 76) | public function projectMembers(): HasMany FILE: app/Models/Organization.php class Organization (line 55) | class Organization extends JetstreamTeam implements AuditableContract method allRealUsers (line 117) | public function allRealUsers(): Collection method hasRealUserWithEmail (line 122) | public function hasRealUserWithEmail(string $email): bool method users (line 134) | public function users(): BelongsToMany method owner (line 151) | public function owner(): BelongsTo method members (line 159) | public function members(): HasMany method realUsers (line 167) | public function realUsers(): BelongsToMany method findOrFail (line 179) | public function findOrFail(string $id, array $columns = ['*']): \Larav... FILE: app/Models/OrganizationInvitation.php class OrganizationInvitation (line 27) | class OrganizationInvitation extends JetstreamTeamInvitation implements ... method organization (line 58) | public function organization(): BelongsTo method team (line 68) | public function team(): BelongsTo FILE: app/Models/Passport/AuthCode.php class AuthCode (line 20) | class AuthCode extends PassportAuthCode method user (line 25) | public function user(): BelongsTo FILE: app/Models/Passport/Client.php class Client (line 26) | class Client extends PassportClient method newFactory (line 36) | protected static function newFactory(): Factory FILE: app/Models/Passport/RefreshToken.php class RefreshToken (line 9) | class RefreshToken extends PassportRefreshToken {} FILE: app/Models/Passport/Token.php class Token (line 32) | class Token extends PassportToken method client (line 43) | public function client(): BelongsTo method user (line 56) | public function user(): BelongsTo method casts (line 66) | protected function casts(): array method scopeIsApiToken (line 81) | public function scopeIsApiToken(Builder $query, bool $isApiToken = tru... FILE: app/Models/Project.php class Project (line 45) | class Project extends Model implements AuditableContract method getSpentTimeComputed (line 96) | public function getSpentTimeComputed(): ?int method scopeComputedAttributesGenerate (line 118) | public function scopeComputedAttributesGenerate(Builder $builder, arra... method scopeComputedAttributesValidate (line 134) | public function scopeComputedAttributesValidate(Builder $builder, arra... method organization (line 142) | public function organization(): BelongsTo method client (line 150) | public function client(): BelongsTo method members (line 158) | public function members(): HasMany method tasks (line 166) | public function tasks(): HasMany method timeEntries (line 174) | public function timeEntries(): HasMany method scopeVisibleByEmployee (line 182) | public function scopeVisibleByEmployee(Builder $builder, User $user): ... method isArchived (line 195) | protected function isArchived(): Attribute FILE: app/Models/ProjectMember.php class ProjectMember (line 32) | class ProjectMember extends Model implements AuditableContract method project (line 53) | public function project(): BelongsTo method user (line 63) | public function user(): BelongsTo method member (line 71) | public function member(): BelongsTo method scopeWhereBelongsToOrganization (line 79) | public function scopeWhereBelongsToOrganization(Builder $builder, Orga... FILE: app/Models/Report.php class Report (line 30) | class Report extends Model method getShareableLink (line 48) | public function getShareableLink(): ?string method organization (line 60) | public function organization(): BelongsTo FILE: app/Models/Tag.php class Tag (line 30) | class Tag extends Model implements AuditableContract method organization (line 52) | public function organization(): BelongsTo method timeEntries (line 62) | public function timeEntries(): HasManyJson FILE: app/Models/Task.php class Task (line 39) | class Task extends Model implements AuditableContract method getSpentTimeComputed (line 79) | public function getSpentTimeComputed(): ?int method scopeComputedAttributesGenerate (line 101) | public function scopeComputedAttributesGenerate(Builder $builder, arra... method scopeComputedAttributesValidate (line 117) | public function scopeComputedAttributesValidate(Builder $builder, arra... method project (line 125) | public function project(): BelongsTo method organization (line 133) | public function organization(): BelongsTo method timeEntries (line 141) | public function timeEntries(): HasMany method scopeVisibleByEmployee (line 150) | public function scopeVisibleByEmployee(Builder $builder, User $user): ... method isDone (line 161) | public function isDone(): Attribute FILE: app/Models/TimeEntry.php class TimeEntry (line 53) | class TimeEntry extends Model implements AuditableContract method getBillableRateComputed (line 120) | public function getBillableRateComputed(): ?int method getClientIdComputed (line 125) | public function getClientIdComputed(): ?string method scopeComputedAttributesGenerate (line 137) | public function scopeComputedAttributesGenerate(Builder $builder, arra... method scopeComputedAttributesValidate (line 158) | public function scopeComputedAttributesValidate(Builder $builder, arra... method getDuration (line 163) | public function getDuration(): ?CarbonInterval method scopeHasTag (line 171) | public function scopeHasTag(Builder $builder, Tag $tag): void method user (line 179) | public function user(): BelongsTo method member (line 187) | public function member(): BelongsTo method organization (line 195) | public function organization(): BelongsTo method project (line 203) | public function project(): BelongsTo method task (line 211) | public function task(): BelongsTo method client (line 221) | public function client(): BelongsTo method tagsRelation (line 231) | public function tagsRelation(): BelongsToJson FILE: app/Models/User.php class User (line 63) | class User extends Authenticatable implements AuditableContract, Filamen... method profilePhotoUrl (line 128) | protected function profilePhotoUrl(): Attribute method canAccessPanel (line 137) | public function canAccessPanel(Panel $panel): bool method canBeImpersonated (line 142) | public function canBeImpersonated(): bool method organizations (line 150) | public function organizations(): BelongsToMany method timeEntries (line 165) | public function timeEntries(): HasMany method currentOrganization (line 173) | public function currentOrganization(): BelongsTo method projectMembers (line 181) | public function projectMembers(): HasMany method accessTokens (line 189) | public function accessTokens(): HasMany method authCodes (line 197) | public function authCodes(): HasMany method scopeActive (line 205) | public function scopeActive(Builder $builder): void method scopeBelongsToOrganization (line 214) | public function scopeBelongsToOrganization(Builder $builder, Organizat... FILE: app/Policies/OrganizationPolicy.php class OrganizationPolicy (line 13) | class OrganizationPolicy method viewAny (line 20) | public function viewAny(User $user): bool method view (line 32) | public function view(User $user, Organization $organization): bool method create (line 44) | public function create(User $user): bool method update (line 56) | public function update(User $user, Organization $organization): bool method addTeamMember (line 68) | public function addTeamMember(User $user, Organization $organization):... method updateTeamMember (line 80) | public function updateTeamMember(User $user, Organization $organizatio... method removeTeamMember (line 93) | public function removeTeamMember(User $user, Organization $organizatio... method delete (line 106) | public function delete(User $user, Organization $organization): bool FILE: app/Providers/AppServiceProvider.php class AppServiceProvider (line 35) | class AppServiceProvider extends ServiceProvider method register (line 40) | public function register(): void method boot (line 48) | public function boot(): void FILE: app/Providers/AuthServiceProvider.php class AuthServiceProvider (line 17) | class AuthServiceProvider extends ServiceProvider method boot (line 31) | public function boot(): void FILE: app/Providers/EventServiceProvider.php class EventServiceProvider (line 13) | class EventServiceProvider extends ServiceProvider method boot (line 32) | public function boot(): void method shouldDiscoverEvents (line 40) | public function shouldDiscoverEvents(): bool FILE: app/Providers/Filament/AdminPanelProvider.php class AdminPanelProvider (line 31) | class AdminPanelProvider extends PanelProvider method panel (line 33) | public function panel(Panel $panel): Panel FILE: app/Providers/FortifyServiceProvider.php class FortifyServiceProvider (line 24) | class FortifyServiceProvider extends ServiceProvider method register (line 29) | public function register(): void method boot (line 37) | public function boot(): void FILE: app/Providers/JetstreamServiceProvider.php class JetstreamServiceProvider (line 34) | class JetstreamServiceProvider extends ServiceProvider method register (line 39) | public function register(): void method boot (line 47) | public function boot(): void method configurePermissions (line 78) | protected function configurePermissions(): void FILE: app/Providers/RouteServiceProvider.php class RouteServiceProvider (line 14) | class RouteServiceProvider extends ServiceProvider method boot (line 28) | public function boot(): void FILE: app/Providers/TelescopeServiceProvider.php class TelescopeServiceProvider (line 13) | class TelescopeServiceProvider extends TelescopeApplicationServiceProvider method register (line 18) | public function register(): void method hideSensitiveRequestDetails (line 40) | protected function hideSensitiveRequestDetails(): void method gate (line 60) | protected function gate(): void FILE: app/Rules/ColorRule.php class ColorRule (line 12) | class ColorRule implements ValidationRule method validate (line 19) | public function validate(string $attribute, mixed $value, Closure $fai... FILE: app/Rules/CurrencyRule.php class CurrencyRule (line 12) | class CurrencyRule implements ValidationRule method validate (line 19) | public function validate(string $attribute, mixed $value, Closure $fai... FILE: app/Service/ApiService.php class ApiService (line 19) | class ApiService method checkForUpdate (line 23) | public function checkForUpdate(): ?string method telemetry (line 54) | public function telemetry(): bool FILE: app/Service/BillableRateService.php class BillableRateService (line 14) | class BillableRateService method updateTimeEntriesBillableRateForProjectMember (line 16) | public function updateTimeEntriesBillableRateForProjectMember(ProjectM... method updateTimeEntriesBillableRateForProject (line 25) | public function updateTimeEntriesBillableRateForProject(Project $proje... method updateTimeEntriesBillableRateForMember (line 42) | public function updateTimeEntriesBillableRateForMember(Member $member)... method updateTimeEntriesBillableRateForOrganization (line 60) | public function updateTimeEntriesBillableRateForOrganization(Organizat... method getBillableRateForTimeEntryWithGivenRelations (line 81) | public function getBillableRateForTimeEntryWithGivenRelations(TimeEntr... method getBillableRateForTimeEntry (line 102) | public function getBillableRateForTimeEntry(TimeEntry $timeEntry): ?int FILE: app/Service/BillingContract.php class BillingContract (line 15) | class BillingContract method hasSubscription (line 23) | public function hasSubscription(Organization $organization): bool method hasTrial (line 32) | public function hasTrial(Organization $organization): bool method getTrialUntil (line 41) | public function getTrialUntil(Organization $organization): ?Carbon method isBlocked (line 53) | public function isBlocked(Organization $organization): bool FILE: app/Service/ColorService.php class ColorService (line 7) | class ColorService method isBuiltInColor (line 36) | public function isBuiltInColor(string $color): bool method getRandomColor (line 41) | public function getRandomColor(?string $seed = null): string method isValid (line 50) | public function isValid(string $color): bool FILE: app/Service/CurrencyService.php class CurrencyService (line 10) | class CurrencyService method getCurrencySymbolForMoney (line 365) | public function getCurrencySymbolForMoney(Money $money): string method getCurrencySymbol (line 370) | public function getCurrencySymbol(string $currencyCode): string method getRandomCurrencyCode (line 379) | public function getRandomCurrencyCode(): string FILE: app/Service/DashboardService.php class DashboardService (line 19) | class DashboardService method __construct (line 23) | public function __construct(TimezoneService $timezoneService) method lastDays (line 31) | private function lastDays(int $days, CarbonTimeZone $timeZone): Collec... method lastDaysSplitInWindows (line 46) | private function lastDaysSplitInWindows(int $days, CarbonTimeZone $tim... method daysOfThisWeek (line 80) | private function daysOfThisWeek(CarbonTimeZone $timeZone, Weekday $sta... method constrainDateByPossibleDates (line 98) | private function constrainDateByPossibleDates(Builder $builder, Collec... method constrainDateByCurrentWeek (line 123) | private function constrainDateByCurrentWeek(Builder $builder, CarbonTi... method getDailyTrackedHours (line 138) | public function getDailyTrackedHours(User $user, Organization $organiz... method getWeeklyHistory (line 181) | public function getWeeklyHistory(User $user, Organization $organizatio... method totalWeeklyTime (line 217) | public function totalWeeklyTime(User $user, Organization $organization... method totalWeeklyBillableTime (line 234) | public function totalWeeklyBillableTime(User $user, Organization $orga... method totalWeeklyBillableAmount (line 255) | public function totalWeeklyBillableAmount(User $user, Organization $or... method weeklyProjectOverview (line 285) | public function weeklyProjectOverview(User $user, Organization $organi... method latestTeamActivity (line 345) | public function latestTeamActivity(Organization $organization): array method latestTasks (line 383) | public function latestTasks(User $user, Organization $organization): a... method lastSevenDays (line 423) | public function lastSevenDays(User $user, Organization $organization):... FILE: app/Service/DeletionService.php class DeletionService (line 24) | class DeletionService method __construct (line 30) | public function __construct(UserService $userService, MemberService $m... method deleteOrganization (line 36) | public function deleteOrganization(Organization $organization, bool $i... method deleteUser (line 133) | public function deleteUser(User $user, bool $inTransaction = true): void FILE: app/Service/Dto/ReportPropertiesDto.php class ReportPropertiesDto (line 19) | class ReportPropertiesDto implements Castable method castUsing (line 74) | public static function castUsing(array $arguments): CastsAttributes method idArrayToCollection (line 171) | public static function idArrayToCollection(array $ids): Collection method setMemberIds (line 190) | public function setMemberIds(?array $memberIds): void method setClientIds (line 198) | public function setClientIds(?array $clientIds): void method setProjectIds (line 206) | public function setProjectIds(?array $projectIds): void method setTagIds (line 214) | public function setTagIds(?array $tagIds): void method setTaskIds (line 222) | public function setTaskIds(?array $taskIds): void FILE: app/Service/Export/ExportException.php class ExportException (line 9) | class ExportException extends ApiException FILE: app/Service/Export/ExportService.php class ExportService (line 30) | class ExportService method export (line 37) | public function export(Organization $organization): string FILE: app/Service/Import/ImportDatabaseHelper.php class ImportDatabaseHelper (line 16) | class ImportDatabaseHelper method __construct (line 68) | public function __construct(string $model, array $identifiers, bool $a... method getModelInstance (line 83) | private function getModelInstance(): Builder method createEntity (line 92) | private function createEntity(array $identifierData, array $createValu... method getHash (line 132) | private function getHash(array $data): string method getKey (line 148) | public function getKey(array $identifierData, array $createValues = []... method getModelById (line 174) | public function getModelById(string $id): ?Model method getCachedModels (line 194) | public function getCachedModels(): array method getModel (line 207) | public function getModel(array $identifierData): ?Model method validateIdentifierData (line 229) | private function validateIdentifierData(array $identifierData): void method getKeyByExternalIdentifier (line 236) | public function getKeyByExternalIdentifier(string $externalIdentifier)... method getExternalIds (line 249) | public function getExternalIds(): array method checkMap (line 255) | private function checkMap(): void method getCreatedCount (line 280) | public function getCreatedCount(): int FILE: app/Service/Import/ImportService.php class ImportService (line 18) | class ImportService method import (line 23) | public function import(Organization $organization, string $importerTyp... FILE: app/Service/Import/Importers/ClockifyProjectsImporter.php class ClockifyProjectsImporter (line 12) | class ClockifyProjectsImporter extends DefaultImporter method importData (line 17) | #[\Override] method validateHeader (line 76) | private function validateHeader(array $header): void method getBillableRateKey (line 96) | private function getBillableRateKey(array $header): ?string method getName (line 109) | #[\Override] method getDescription (line 115) | #[\Override] FILE: app/Service/Import/Importers/ClockifyTimeEntriesImporter.php class ClockifyTimeEntriesImporter (line 18) | class ClockifyTimeEntriesImporter extends DefaultImporter method getTags (line 25) | private function getTags(string $tags): array method importData (line 46) | #[\Override] method validateHeader (line 211) | private function validateHeader(array $header): void method getName (line 235) | #[\Override] method getDescription (line 241) | #[\Override] FILE: app/Service/Import/Importers/DefaultImporter.php class DefaultImporter (line 22) | abstract class DefaultImporter implements ImporterContract method init (line 74) | public function init(Organization $organization): void method getReport (line 184) | #[\Override] FILE: app/Service/Import/Importers/GenericProjectsImporter.php class GenericProjectsImporter (line 15) | class GenericProjectsImporter extends DefaultImporter method importData (line 27) | #[Override] method validateHeader (line 85) | private function validateHeader(array $header): void method getName (line 94) | #[Override] method getDescription (line 100) | #[Override] FILE: app/Service/Import/Importers/GenericTimeEntriesImporter.php class GenericTimeEntriesImporter (line 18) | class GenericTimeEntriesImporter extends DefaultImporter method getTags (line 41) | private function getTags(string $tags): array method importData (line 62) | #[\Override] method validateHeader (line 188) | private function validateHeader(array $header): void method getName (line 197) | #[\Override] method getDescription (line 203) | #[\Override] FILE: app/Service/Import/Importers/HarvestClientsImporter.php class HarvestClientsImporter (line 11) | class HarvestClientsImporter extends DefaultImporter method importData (line 23) | #[\Override] method validateHeader (line 56) | private function validateHeader(array $header): void method getName (line 65) | #[\Override] method getDescription (line 71) | #[\Override] FILE: app/Service/Import/Importers/HarvestProjectsImporter.php class HarvestProjectsImporter (line 12) | class HarvestProjectsImporter extends DefaultImporter method importData (line 27) | #[\Override] method validateHeader (line 87) | private function validateHeader(array $header): void method getName (line 96) | #[\Override] method getDescription (line 102) | #[\Override] FILE: app/Service/Import/Importers/HarvestTimeEntriesImporter.php class HarvestTimeEntriesImporter (line 19) | class HarvestTimeEntriesImporter extends DefaultImporter method importData (line 39) | #[Override] method validateHeader (line 171) | private function validateHeader(array $header): void method getName (line 180) | #[Override] method getDescription (line 186) | #[Override] FILE: app/Service/Import/Importers/ImportException.php class ImportException (line 7) | class ImportException extends \Exception {} FILE: app/Service/Import/Importers/ImporterContract.php type ImporterContract (line 9) | interface ImporterContract method init (line 11) | public function init(Organization $organization): void; method importData (line 13) | public function importData(string $data, string $timezone): void; method getReport (line 15) | public function getReport(): ReportDto; method getName (line 17) | public function getName(): string; method getDescription (line 19) | public function getDescription(): string; FILE: app/Service/Import/Importers/ImporterProvider.php class ImporterProvider (line 7) | class ImporterProvider method registerImporter (line 28) | public function registerImporter(string $type, string $importer): void method getImporterKeys (line 36) | public function getImporterKeys(): array method getImporters (line 44) | public function getImporters(): array method getImporter (line 49) | public function getImporter(string $type): ImporterContract FILE: app/Service/Import/Importers/ReportDto.php class ReportDto (line 7) | class ReportDto method __construct (line 21) | public function __construct(int $clientsCreated, int $projectsCreated,... method toArray (line 53) | public function toArray(): array FILE: app/Service/Import/Importers/SolidtimeImporter.php class SolidtimeImporter (line 20) | class SolidtimeImporter extends DefaultImporter method importData (line 30) | #[Override] method getTags (line 329) | private function getTags(string $tags): array method getName (line 350) | #[Override] method getDescription (line 356) | #[Override] FILE: app/Service/Import/Importers/TogglDataImporter.php class TogglDataImporter (line 18) | class TogglDataImporter extends DefaultImporter method importData (line 23) | #[Override] method getName (line 212) | #[Override] method getDescription (line 218) | #[Override] FILE: app/Service/Import/Importers/TogglTimeEntriesImporter.php class TogglTimeEntriesImporter (line 18) | class TogglTimeEntriesImporter extends DefaultImporter method getTags (line 25) | private function getTags(string $tags): array method importData (line 46) | #[\Override] method validateHeader (line 172) | private function validateHeader(array $header): void method getName (line 195) | #[\Override] method getDescription (line 201) | #[\Override] FILE: app/Service/IntervalService.php class IntervalService (line 9) | class IntervalService method format (line 11) | public function format(CarbonInterval $interval): string FILE: app/Service/InvitationService.php class InvitationService (line 17) | class InvitationService method inviteUser (line 22) | public function inviteUser(Organization $organization, string $email, ... FILE: app/Service/IpLookup/IpLookupResponseDto.php class IpLookupResponseDto (line 9) | class IpLookupResponseDto method __construct (line 17) | public function __construct(?string $timezone, ?Weekday $startOfWeek, ... FILE: app/Service/IpLookup/IpLookupServiceContract.php type IpLookupServiceContract (line 7) | interface IpLookupServiceContract method lookup (line 9) | public function lookup(string $ip): ?IpLookupResponseDto; FILE: app/Service/IpLookup/NoIpLookupService.php class NoIpLookupService (line 7) | class NoIpLookupService implements IpLookupServiceContract method lookup (line 9) | public function lookup(string $ip): ?IpLookupResponseDto FILE: app/Service/LocalizationService.php class LocalizationService (line 18) | class LocalizationService method __construct (line 30) | public function __construct(CurrencyFormat $currencyFormat, DateFormat... method forOrganization (line 39) | public static function forOrganization(Organization $organization): self method formatNumber (line 50) | public function formatNumber(BigDecimal|float $number): string method formatNumberWithoutTrailingZeros (line 67) | public function formatNumberWithoutTrailingZeros(BigDecimal|float $num... method formatInterval (line 78) | public function formatInterval(CarbonInterval $interval): string method formatCurrency (line 99) | public function formatCurrency(Money $money): string method formatTime (line 117) | public function formatTime(CarbonInterface $time): string method formatDate (line 126) | public function formatDate(CarbonInterface $date): string method setDateFormat (line 131) | public function setDateFormat(DateFormat $dateFormat): void method setCurrencyFormat (line 136) | public function setCurrencyFormat(CurrencyFormat $currencyFormat): void method setIntervalFormat (line 141) | public function setIntervalFormat(IntervalFormat $intervalFormat): void method setTimeFormat (line 146) | public function setTimeFormat(TimeFormat $timeFormat): void method setNumberFormat (line 151) | public function setNumberFormat(NumberFormat $numberFormat): void FILE: app/Service/MemberService.php class MemberService (line 27) | class MemberService method __construct (line 31) | public function __construct(UserService $userService) method addMember (line 36) | public function addMember(User $user, Organization $organization, Role... method removeMember (line 64) | public function removeMember(Member $member, Organization $organizatio... method changeRole (line 108) | public function changeRole(Member $member, Organization $organization,... method assignOrganizationEntitiesToDifferentMember (line 131) | public function assignOrganizationEntitiesToDifferentMember(Organizati... method changeOwnership (line 168) | public function changeOwnership(Organization $organization, Member $ne... method makeMemberToPlaceholder (line 189) | public function makeMemberToPlaceholder(Member $member, bool $makeSure... FILE: app/Service/OrganizationInvitationService.php class OrganizationInvitationService (line 11) | class OrganizationInvitationService method resend (line 13) | public function resend(OrganizationInvitation $invitation): void FILE: app/Service/OrganizationService.php class OrganizationService (line 16) | class OrganizationService method createOrganization (line 18) | public function createOrganization( FILE: app/Service/PermissionStore.php class PermissionStore (line 13) | class PermissionStore method clear (line 20) | public function clear(): void method has (line 25) | public function has(Organization $organization, string $permission): bool method userHas (line 36) | public function userHas(Organization $organization, User $user, string... method getPermissionsByUser (line 55) | private function getPermissionsByUser(Organization $organization, User... method getPermissions (line 92) | public function getPermissions(Organization $organization): array FILE: app/Service/ReportExport/CsvExport.php class CsvExport (line 19) | abstract class CsvExport method __construct (line 44) | public function __construct(string $disk, string $folderPath, string $... method mapRow (line 58) | abstract public function mapRow(Model $model): array; method export (line 65) | public function export(): void method convertRow (line 91) | private function convertRow(array $data): array method validateRow (line 112) | private function validateRow(array $row): void FILE: app/Service/ReportExport/TimeEntriesDetailedCsvExport.php class TimeEntriesDetailedCsvExport (line 15) | class TimeEntriesDetailedCsvExport extends CsvExport method __construct (line 35) | public function __construct(string $disk, string $folderPath, string $... method mapRow (line 45) | public function mapRow(Model $model): array FILE: app/Service/ReportExport/TimeEntriesDetailedExport.php class TimeEntriesDetailedExport (line 27) | class TimeEntriesDetailedExport implements FromQuery, ShouldAutoSize, Wi... method __construct (line 45) | public function __construct(Builder $builder, ExportFormat $exportForm... method query (line 56) | public function query(): Builder method columnFormats (line 64) | public function columnFormats(): array method styles (line 85) | public function styles(Worksheet $sheet): array method headings (line 96) | public function headings(): array method map (line 117) | public function map($model): array FILE: app/Service/ReportExport/TimeEntriesReportExport.php class TimeEntriesReportExport (line 15) | class TimeEntriesReportExport implements FromView, ShouldAutoSize, WithC... method __construct (line 71) | public function __construct(array $data, ExportFormat $exportFormat, s... method view (line 81) | public function view(): View method getCsvSettings (line 96) | public function getCsvSettings(): array FILE: app/Service/ReportService.php class ReportService (line 9) | class ReportService method generateSecret (line 11) | public function generateSecret(): string FILE: app/Service/TimeEntryAggregationService.php class TimeEntryAggregationService (line 24) | class TimeEntryAggregationService method getAggregatedTimeEntries (line 47) | public function getAggregatedTimeEntries(Builder $timeEntriesQuery, ?T... method getAggregatedTimeEntriesWithDescriptions (line 226) | public function getAggregatedTimeEntriesWithDescriptions(Builder $time... method loadDescriptorsMap (line 295) | private function loadDescriptorsMap(array $keys, TimeEntryAggregationT... method fillGapsInTimeGroups (line 400) | public function fillGapsInTimeGroups(array $data, TimeEntryAggregation... method getGroupByQuery (line 478) | private function getGroupByQuery(TimeEntryAggregationType $group, stri... method timeSlotsBetween (line 517) | public function timeSlotsBetween(Carbon $start, Carbon $end, string $t... FILE: app/Service/TimeEntryFilter.php class TimeEntryFilter (line 13) | class TimeEntryFilter method __construct (line 25) | public function __construct(Builder $builder) method addEndFilter (line 30) | public function addEndFilter(?string $dateTime): self method addEnd (line 40) | public function addEnd(?Carbon $end): self method addStartFilter (line 50) | public function addStartFilter(?string $dateTime): self method addStart (line 60) | public function addStart(?Carbon $start): self method addActiveFilter (line 70) | public function addActiveFilter(?string $active): self method addActive (line 86) | public function addActive(?bool $active): self method addMemberIdFilter (line 97) | public function addMemberIdFilter(?Member $member): self method addMemberIdsFilter (line 110) | public function addMemberIdsFilter(?array $memberIds): self method addBillableFilter (line 120) | public function addBillableFilter(?string $billable): self method addBillable (line 136) | public function addBillable(?bool $billable): self method addClientIdsFilter (line 149) | public function addClientIdsFilter(?array $clientIds): self method addProjectIdsFilter (line 172) | public function addProjectIdsFilter(?array $projectIds): self method addTagIdsFilter (line 195) | public function addTagIdsFilter(?array $tagIds): self method addTaskIdsFilter (line 220) | public function addTaskIdsFilter(?array $taskIds): self method get (line 243) | public function get(): Builder FILE: app/Service/TimeEntryService.php class TimeEntryService (line 11) | class TimeEntryService method getStartSelectRawForRounding (line 13) | public function getStartSelectRawForRounding(?TimeEntryRoundingType $r... method getEndSelectRawForRounding (line 25) | public function getEndSelectRawForRounding(?TimeEntryRoundingType $rou... FILE: app/Service/TimezoneService.php class TimezoneService (line 12) | class TimezoneService method getTimezones (line 279) | public function getTimezones(bool $inclLegacy = false): array method getTimezoneFromUser (line 286) | public function getTimezoneFromUser(User $user): CarbonTimeZone method getSelectOptions (line 303) | public function getSelectOptions(): array method isValid (line 314) | public function isValid(string $timezone): bool method mapLegacyTimezone (line 319) | public function mapLegacyTimezone(string $timezone): ?string method getShiftFromUtc (line 324) | public function getShiftFromUtc(CarbonTimeZone $timeZone): int FILE: app/Service/UserService.php class UserService (line 23) | class UserService method createUser (line 25) | public function createUser( method assignOrganizationEntitiesToDifferentUser (line 71) | public function assignOrganizationEntitiesToDifferentUser(Organization... method makeSureUserHasAtLeastOneOrganization (line 90) | public function makeSureUserHasAtLeastOneOrganization(User $user): void method getOrganizationNameForUserName (line 110) | public function getOrganizationNameForUserName(string $username): string method makeSureUserHasCurrentOrganization (line 115) | public function makeSureUserHasCurrentOrganization(User $user): void method changeOwnership (line 132) | public function changeOwnership(Organization $organization, User $newO... FILE: database/factories/AuditFactory.php class AuditFactory (line 16) | class AuditFactory extends Factory method definition (line 23) | public function definition(): array method auditUser (line 50) | public function auditUser(User $user): self method auditFor (line 62) | public function auditFor(Model $model): self FILE: database/factories/ClientFactory.php class ClientFactory (line 14) | class ClientFactory extends Factory method definition (line 21) | public function definition(): array method forOrganization (line 30) | public function forOrganization(Organization $organization): self method randomCreatedAt (line 37) | public function randomCreatedAt(): self method archived (line 46) | public function archived(): self FILE: database/factories/MemberFactory.php class MemberFactory (line 16) | class MemberFactory extends Factory method definition (line 23) | public function definition(): array method role (line 33) | public function role(Role $role): static method forOrganization (line 42) | public function forOrganization(Organization $organization): static method forUser (line 49) | public function forUser(User $user): static method unverified (line 59) | public function unverified(): static method billableRate (line 68) | public function billableRate(?int $billableRate): self method withBillableRate (line 75) | public function withBillableRate(): self method attachToOrganization (line 82) | public function attachToOrganization(Organization $organization, array... FILE: database/factories/OrganizationFactory.php class OrganizationFactory (line 20) | class OrganizationFactory extends Factory method definition (line 27) | public function definition(): array method billableRate (line 44) | public function billableRate(?int $billableRate): self method withBillableRate (line 51) | public function withBillableRate(): self method withOwner (line 58) | public function withOwner(?User $owner = null): self method withFakeId (line 65) | public function withFakeId(): self FILE: database/factories/OrganizationInvitationFactory.php class OrganizationInvitationFactory (line 15) | class OrganizationInvitationFactory extends Factory method definition (line 22) | public function definition(): array method forOrganization (line 31) | public function forOrganization(Organization $organization): self FILE: database/factories/Passport/ClientFactory.php class ClientFactory (line 15) | class ClientFactory extends BaseClientFactory method definition (line 22) | public function definition(): array method desktopClient (line 39) | public function desktopClient(): self method apiClient (line 47) | public function apiClient(): self method personalAccessClient (line 55) | public function personalAccessClient(): self method forUser (line 64) | public function forUser(User $user): self FILE: database/factories/Passport/TokenFactory.php class TokenFactory (line 15) | class TokenFactory extends Factory method definition (line 22) | public function definition(): array method forUser (line 39) | public function forUser(User $user): self method forClient (line 48) | public function forClient(Client $client): self FILE: database/factories/ProjectFactory.php class ProjectFactory (line 19) | class ProjectFactory extends Factory method definition (line 26) | public function definition(): array method withEstimatedTime (line 41) | public function withEstimatedTime(): self method billable (line 50) | public function billable(?int $billableRate = null): self method createdAt (line 60) | public function createdAt(Carbon $createdAt): self method archived (line 69) | public function archived(): self method forOrganization (line 78) | public function forOrganization(Organization $organization): self method isPublic (line 87) | public function isPublic(): self method isPrivate (line 96) | public function isPrivate(): self method addMember (line 105) | public function addMember(Member $member, array $attributes = []): self method withClient (line 115) | public function withClient(): self method forClient (line 124) | public function forClient(?Client $client): self FILE: database/factories/ProjectMemberFactory.php class ProjectMemberFactory (line 16) | class ProjectMemberFactory extends Factory method definition (line 23) | public function definition(): array method forUser (line 36) | public function forUser(User $user): self method forMember (line 45) | public function forMember(Member $member): self method forProject (line 55) | public function forProject(Project $project): self FILE: database/factories/ReportFactory.php class ReportFactory (line 20) | class ReportFactory extends Factory method definition (line 27) | public function definition(): array method randomCreatedAt (line 47) | public function randomCreatedAt(): self method public (line 54) | public function public(): self method private (line 62) | public function private(): self method forOrganization (line 70) | public function forOrganization(Organization $organization): self FILE: database/factories/TagFactory.php class TagFactory (line 14) | class TagFactory extends Factory method definition (line 21) | public function definition(): array method forOrganization (line 29) | public function forOrganization(Organization $organization): self method randomCreatedAt (line 38) | public function randomCreatedAt(): self FILE: database/factories/TaskFactory.php class TaskFactory (line 15) | class TaskFactory extends Factory method definition (line 22) | public function definition(): array method forProject (line 33) | public function forProject(Project $project): self method isDone (line 40) | public function isDone(): self method forOrganization (line 47) | public function forOrganization(Organization $organization): self FILE: database/factories/TimeEntryFactory.php class TimeEntryFactory (line 20) | class TimeEntryFactory extends Factory method definition (line 27) | public function definition(): array method notBillable (line 47) | public function notBillable(): self method billableRate (line 56) | public function billableRate(int $billableRate): self method withTask (line 66) | public function withTask(Organization $organization): self method withTags (line 79) | public function withTags(Organization $organization): self method startBetween (line 91) | public function startBetween(Carbon $rangeStart, Carbon $rangeEnd, boo... method active (line 105) | public function active(): self method forUser (line 117) | public function forUser(User $user): self method forMember (line 126) | public function forMember(Member $member): static method billable (line 137) | public function billable(): self method startWithDuration (line 146) | public function startWithDuration(Carbon $start, int $durationInSecond... method endWithDuration (line 156) | public function endWithDuration(Carbon $end, int $durationInSeconds): ... method start (line 166) | public function start(Carbon $start): self method forOrganization (line 175) | public function forOrganization(Organization $organization): self method forProject (line 184) | public function forProject(?Project $project): self method forTask (line 192) | public function forTask(?Task $task): self FILE: database/factories/UserFactory.php class UserFactory (line 18) | class UserFactory extends Factory method definition (line 25) | public function definition(): array method forCurrentOrganization (line 44) | public function forCurrentOrganization(Organization $organization): st... method randomTimeZone (line 53) | public function randomTimeZone(): static method placeholder (line 62) | public function placeholder(bool $placeholder = true): static method unverified (line 74) | public function unverified(): static method attachToOrganization (line 83) | public function attachToOrganization(Organization $organization, array... method withProfilePicture (line 90) | public function withProfilePicture(): static method withPersonalOrganization (line 107) | public function withPersonalOrganization(?callable $callback = null): ... FILE: database/migrations/2014_10_12_000000_create_users_table.php method up (line 14) | public function up(): void method down (line 46) | public function down(): void FILE: database/migrations/2014_10_12_100000_create_password_reset_tokens_table.php method up (line 14) | public function up(): void method down (line 26) | public function down(): void FILE: database/migrations/2014_10_12_200000_add_two_factor_columns_to_users_table.php method up (line 15) | public function up(): void method down (line 37) | public function down(): void FILE: database/migrations/2016_06_01_000001_create_oauth_auth_codes_table.php method up (line 14) | public function up(): void method down (line 29) | public function down(): void FILE: database/migrations/2016_06_01_000002_create_oauth_access_tokens_table.php method up (line 14) | public function up(): void method down (line 31) | public function down(): void FILE: database/migrations/2016_06_01_000003_create_oauth_refresh_tokens_table.php method up (line 14) | public function up(): void method down (line 27) | public function down(): void FILE: database/migrations/2016_06_01_000004_create_oauth_clients_table.php method up (line 14) | public function up(): void method down (line 33) | public function down(): void FILE: database/migrations/2016_06_01_000005_create_oauth_personal_access_clients_table.php method up (line 14) | public function up(): void method down (line 26) | public function down(): void FILE: database/migrations/2018_08_08_100000_create_telescope_entries_table.php method getConnection (line 14) | public function getConnection(): ?string method up (line 22) | public function up(): void method down (line 67) | public function down(): void FILE: database/migrations/2019_08_19_000000_create_failed_jobs_table.php method up (line 14) | public function up(): void method down (line 30) | public function down(): void FILE: database/migrations/2019_12_14_000001_create_personal_access_tokens_table.php method up (line 14) | public function up(): void method down (line 31) | public function down(): void FILE: database/migrations/2020_05_21_100000_create_organizations_table.php method up (line 14) | public function up(): void method down (line 30) | public function down(): void FILE: database/migrations/2020_05_21_200000_create_organization_user_table.php method up (line 14) | public function up(): void method down (line 31) | public function down(): void FILE: database/migrations/2020_05_21_300000_create_organization_invitations_table.php method up (line 14) | public function up(): void method down (line 32) | public function down(): void FILE: database/migrations/2024_01_16_161030_create_sessions_table.php method up (line 14) | public function up(): void method down (line 29) | public function down(): void FILE: database/migrations/2024_01_20_110218_create_clients_table.php method up (line 14) | public function up(): void method down (line 32) | public function down(): void FILE: database/migrations/2024_01_20_110439_create_projects_table.php method up (line 14) | public function up(): void method down (line 41) | public function down(): void FILE: database/migrations/2024_01_20_110444_create_tasks_table.php method up (line 14) | public function up(): void method down (line 38) | public function down(): void FILE: database/migrations/2024_01_20_110452_create_tags_table.php method up (line 14) | public function up(): void method down (line 34) | public function down(): void FILE: database/migrations/2024_01_20_110837_create_time_entries_table.php method up (line 14) | public function up(): void method down (line 59) | public function down(): void FILE: database/migrations/2024_03_26_171253_create_project_members_table.php method up (line 14) | public function up(): void method down (line 39) | public function down(): void FILE: database/migrations/2024_04_11_150130_create_jobs_table.php method up (line 14) | public function up(): void method down (line 30) | public function down(): void FILE: database/migrations/2024_04_12_095010_create_cache_table.php method up (line 14) | public function up(): void method down (line 32) | public function down(): void FILE: database/migrations/2024_05_07_134711_move_from_user_id_to_member_id_in_project_members_table.php method up (line 15) | public function up(): void method down (line 39) | public function down(): void FILE: database/migrations/2024_05_07_141842_move_from_user_id_to_member_id_in_time_entries_table.php method up (line 15) | public function up(): void method down (line 40) | public function down(): void FILE: database/migrations/2024_05_13_171020_rename_table_organization_user_to_members.php method up (line 13) | public function up(): void method down (line 21) | public function down(): void FILE: database/migrations/2024_05_22_151226_add_client_id_to_time_entries_table.php method up (line 15) | public function up(): void method down (line 36) | public function down(): void FILE: database/migrations/2024_05_30_175801_add_is_billable_column_to_projects_table.php method up (line 15) | public function up(): void method down (line 33) | public function down(): void FILE: database/migrations/2024_05_30_175825_add_is_imported_column_to_time_entries_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2024_06_01_000001_create_oauth_device_codes_table.php method up (line 14) | public function up(): void method down (line 32) | public function down(): void method getConnection (line 40) | public function getConnection(): ?string FILE: database/migrations/2024_06_07_113443_change_member_id_foreign_keys_to_restrict_on_delete.php method up (line 14) | public function up(): void method down (line 51) | public function down(): void FILE: database/migrations/2024_06_10_161831_reset_billable_rates_with_zero_as_value.php method up (line 12) | public function up(): void method down (line 34) | public function down(): void FILE: database/migrations/2024_06_21_122754_add_is_archived_columns_to_projects_and_clients_table.php method up (line 14) | public function up(): void method down (line 27) | public function down(): void FILE: database/migrations/2024_06_24_114433_add_done_at_to_tasks_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2024_07_02_134307_add_estimated_time_to_projects_and_tasks_table.php method up (line 14) | public function up(): void method down (line 27) | public function down(): void FILE: database/migrations/2024_07_03_145445_change_data_type_of_id_column_in_failed_jobs_table.php method up (line 14) | public function up(): void method down (line 28) | public function down(): void FILE: database/migrations/2024_07_18_080906_add_still_active_email_sent_at_to_time_entries_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2024_08_01_104840_create_reports_table.php method up (line 14) | public function up(): void method down (line 37) | public function down(): void FILE: database/migrations/2024_09_02_094105_create_audits_table.php class CreateAuditsTable (line 9) | class CreateAuditsTable extends Migration method up (line 14) | public function up(): void method down (line 43) | public function down(): void FILE: database/migrations/2024_09_18_120203_add_spent_time_to_projects_and_tasks_table.php method up (line 14) | public function up(): void method down (line 27) | public function down(): void FILE: database/migrations/2024_10_01_143608_add_employees_can_see_billable_rates_to_organizations_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2024_11_04_164807_add_foreign_key_to_organizations_and_members_table.php method up (line 15) | public function up(): void method down (line 83) | public function down(): void FILE: database/migrations/2024_11_04_170614_add_foreign_keys_to_oauth_tables.php method up (line 15) | public function up(): void method down (line 97) | public function down(): void FILE: database/migrations/2025_04_03_101827_add_localization_columns_to_organizations_table.php method up (line 14) | public function up(): void method down (line 36) | public function down(): void FILE: database/migrations/2025_04_25_202047_change_data_type_for_spent_time_columns.php method up (line 14) | public function up(): void method down (line 27) | public function down(): void FILE: database/migrations/2025_05_06_152804_fix_typos_in_organizations_table_format_columns.php method up (line 12) | public function up(): void method down (line 30) | public function down(): void FILE: database/migrations/2025_05_16_075757_add_foreign_key_for_current_team_id_in_users_table.php method up (line 14) | public function up(): void method down (line 37) | public function down(): void FILE: database/migrations/2025_06_30_095942_remove_oauth_personal_access_clients_table.php method up (line 14) | public function up(): void method down (line 22) | public function down(): void FILE: database/migrations/2025_06_30_132538_update_oauth_clients_table.php method up (line 14) | public function up(): void method down (line 78) | public function down(): void FILE: database/migrations/2025_07_15_105949_hash_oauth_clients.php method up (line 12) | public function up(): void method down (line 31) | public function down(): void FILE: database/migrations/2025_07_17_104903_add_reminder_sent_at_to_oauth_access_tokens_table.php method up (line 14) | public function up(): void method down (line 25) | public function down(): void FILE: database/migrations/2025_10_02_000001_add_prevent_overlapping_time_entries_to_organizations_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2025_10_16_000001_extend_time_entry_description.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/migrations/2025_10_24_120845_add_employees_can_manage_tasks_to_organizations_table.php method up (line 14) | public function up(): void method down (line 24) | public function down(): void FILE: database/schema/pgsql_test-schema.sql type public (line 27) | CREATE TABLE public.cache ( type public (line 38) | CREATE TABLE public.cache_locks ( type public (line 49) | CREATE TABLE public.clients ( type public (line 62) | CREATE TABLE public.customers ( type public (line 80) | CREATE TABLE public.failed_jobs ( type public (line 95) | CREATE TABLE public.jobs ( type public (line 129) | CREATE TABLE public.members ( type public (line 144) | CREATE TABLE public.migrations ( type public (line 175) | CREATE TABLE public.oauth_access_tokens ( type public (line 192) | CREATE TABLE public.oauth_auth_codes ( type public (line 206) | CREATE TABLE public.oauth_clients ( type public (line 225) | CREATE TABLE public.oauth_personal_access_clients ( type public (line 256) | CREATE TABLE public.oauth_refresh_tokens ( type public (line 268) | CREATE TABLE public.organization_invitations ( type public (line 282) | CREATE TABLE public.organizations ( type public (line 298) | CREATE TABLE public.password_reset_tokens ( type public (line 309) | CREATE TABLE public.personal_access_tokens ( type public (line 327) | CREATE TABLE public.project_members ( type public (line 342) | CREATE TABLE public.projects ( type public (line 360) | CREATE TABLE public.sessions ( type public (line 374) | CREATE TABLE public.subscription_items ( type public (line 390) | CREATE TABLE public.subscriptions ( type public (line 409) | CREATE TABLE public.tags ( type public (line 422) | CREATE TABLE public.tasks ( type public (line 436) | CREATE TABLE public.time_entries ( type public (line 460) | CREATE TABLE public.transactions ( type public (line 481) | CREATE TABLE public.users ( type customers_billable_id_billable_type_index (line 815) | CREATE INDEX customers_billable_id_billable_type_index ON public.custome... type jobs_queue_index (line 822) | CREATE INDEX jobs_queue_index ON public.jobs USING btree (queue) type oauth_access_tokens_user_id_index (line 829) | CREATE INDEX oauth_access_tokens_user_id_index ON public.oauth_access_to... type oauth_auth_codes_user_id_index (line 836) | CREATE INDEX oauth_auth_codes_user_id_index ON public.oauth_auth_codes U... type oauth_clients_user_id_index (line 843) | CREATE INDEX oauth_clients_user_id_index ON public.oauth_clients USING b... type oauth_refresh_tokens_access_token_id_index (line 850) | CREATE INDEX oauth_refresh_tokens_access_token_id_index ON public.oauth_... type organizations_user_id_index (line 857) | CREATE INDEX organizations_user_id_index ON public.organizations USING b... type personal_access_tokens_tokenable_type_tokenable_id_index (line 864) | CREATE INDEX personal_access_tokens_tokenable_type_tokenable_id_index ON... type sessions_last_activity_index (line 871) | CREATE INDEX sessions_last_activity_index ON public.sessions USING btree... type sessions_user_id_index (line 878) | CREATE INDEX sessions_user_id_index ON public.sessions USING btree (user... type subscriptions_billable_id_billable_type_index (line 885) | CREATE INDEX subscriptions_billable_id_billable_type_index ON public.sub... type tags_created_at_index (line 892) | CREATE INDEX tags_created_at_index ON public.tags USING btree (created_at) type time_entries_billable_index (line 899) | CREATE INDEX time_entries_billable_index ON public.time_entries USING bt... type time_entries_end_index (line 906) | CREATE INDEX time_entries_end_index ON public.time_entries USING btree (... type time_entries_start_index (line 913) | CREATE INDEX time_entries_start_index ON public.time_entries USING btree... type transactions_billable_id_billable_type_index (line 920) | CREATE INDEX transactions_billable_id_billable_type_index ON public.tran... type transactions_paddle_subscription_id_index (line 927) | CREATE INDEX transactions_paddle_subscription_id_index ON public.transac... type users_email_unique (line 934) | CREATE UNIQUE INDEX users_email_unique ON public.users USING btree (emai... FILE: database/seeders/DatabaseSeeder.php class DatabaseSeeder (line 30) | class DatabaseSeeder extends Seeder method run (line 35) | public function run(): void method deleteAll (line 202) | private function deleteAll(): void FILE: e2e/auth.spec.ts function registerNewUser (line 5) | async function registerNewUser(page, email, password) { FILE: e2e/calendar-settings.spec.ts function goToCalendar (line 6) | async function goToCalendar(page: Page) { function openSettingsPopover (line 11) | async function openSettingsPopover(page: Page) { function clearCalendarSettings (line 16) | async function clearCalendarSettings(page: Page) { FILE: e2e/calendar.spec.ts function goToCalendar (line 12) | async function goToCalendar(page: Page) { FILE: e2e/clients.spec.ts function goToClientsOverview (line 13) | async function goToClientsOverview(page: Page) { function clearClientTableState (line 139) | async function clearClientTableState(page: Page) { FILE: e2e/command-palette.spec.ts constant TIMER_BUTTON_SELECTOR (line 5) | const TIMER_BUTTON_SELECTOR = '[data-testid="dashboard_timer"] [data-tes... function goToDashboard (line 7) | async function goToDashboard(page: Page) { function openCommandPalette (line 11) | async function openCommandPalette(page: Page) { function closeCommandPalette (line 16) | async function closeCommandPalette(page: Page) { function searchInCommandPalette (line 21) | async function searchInCommandPalette(page: Page, query: string) { function selectCommand (line 27) | async function selectCommand(page: Page, name: string) { function assertTimerIsRunning (line 33) | async function assertTimerIsRunning(page: Page) { function assertTimerIsStopped (line 42) | async function assertTimerIsStopped(page: Page) { FILE: e2e/dashboard.spec.ts function goToDashboard (line 18) | async function goToDashboard(page: Page) { FILE: e2e/import-export.spec.ts function goToImportExport (line 6) | async function goToImportExport(page: Page) { FILE: e2e/members.spec.ts function goToMembersPage (line 19) | async function goToMembersPage(page: Page) { function openInviteMemberModal (line 23) | async function openInviteMemberModal(page: Page) { function clearMemberTableState (line 631) | async function clearMemberTableState(page: Page) { FILE: e2e/organization.spec.ts function goToOrganizationSettings (line 4) | async function goToOrganizationSettings(page) { function createTimeEntry (line 10) | async function createTimeEntry(page, duration: string) { FILE: e2e/profile.spec.ts function goToProfilePage (line 5) | async function goToProfilePage(page: Page) { function createNewApiToken (line 30) | async function createNewApiToken(page) { FILE: e2e/project-members.spec.ts function createProjectWithMemberViaApi (line 8) | async function createProjectWithMemberViaApi(ctx: TestContext, page: Pag... FILE: e2e/projects.spec.ts function goToProjectsOverview (line 16) | async function goToProjectsOverview(page: Page) { function clearProjectTableState (line 21) | async function clearProjectTableState(page: Page) { function selectStatusFilter (line 65) | async function selectStatusFilter(page: Page, status: 'Active' | 'Archiv... function removeStatusFilter (line 75) | async function removeStatusFilter(page: Page) { FILE: e2e/shared-reports.spec.ts constant DATE_PICKER_BUTTON_PATTERN (line 26) | const DATE_PICKER_BUTTON_PATTERN = FILE: e2e/tags.spec.ts function goToTagsOverview (line 8) | async function goToTagsOverview(page: Page) { function clearTagTableState (line 97) | async function clearTagTableState(page: Page) { FILE: e2e/tasks.spec.ts function goToProjectsOverview (line 13) | async function goToProjectsOverview(page: Page) { FILE: e2e/time.spec.ts constant DATE_PICKER_BUTTON_PATTERN (line 22) | const DATE_PICKER_BUTTON_PATTERN = constant DATE_DISPLAY_PATTERN (line 25) | const DATE_DISPLAY_PATTERN = /^\d{4}-\d{2}-\d{2}$|^\d{2}\/\d{2}\/\d{4}$|... function getDayFromTimestamp (line 30) | function getDayFromTimestamp(timestamp: string): number { function getMonthFromTimestamp (line 37) | function getMonthFromTimestamp(timestamp: string): number { function goToTimeOverview (line 41) | async function goToTimeOverview(page: Page) { function goToOrganizationSettings (line 45) | async function goToOrganizationSettings(page: Page) { function createEmptyTimeEntry (line 51) | async function createEmptyTimeEntry(page: Page) { function assertThatTimeEntryRowIsStopped (line 88) | async function assertThatTimeEntryRowIsStopped(newTimeEntry: Locator) { FILE: e2e/timetracker.spec.ts constant DATE_DISPLAY_PATTERN (line 15) | const DATE_DISPLAY_PATTERN = /^\d{4}-\d{2}-\d{2}$|^\d{2}\/\d{2}\/\d{4}$|... function goToDashboard (line 17) | async function goToDashboard(page: Page) { FILE: e2e/utils/api.ts type TestContext (line 9) | interface TestContext { function createApiToken (line 30) | async function createApiToken(page: Page): Promise { function bearerHeaders (line 68) | function bearerHeaders(token: string): Record { function setupTestContext (line 79) | async function setupTestContext(page: Page): Promise { function createAuthenticatedRequest (line 89) | function createAuthenticatedRequest( function getOrganizationId (line 118) | async function getOrganizationId( function getCurrentMemberId (line 130) | async function getCurrentMemberId( function parseDurationToSeconds (line 148) | function parseDurationToSeconds(duration: string): number { function createTimestamps (line 173) | function createTimestamps(duration: string): { start: string; end: strin... function formatTimestamp (line 185) | function formatTimestamp(date: Date): string { function randomColor (line 189) | function randomColor(): string { function createPublicProjectViaApi (line 207) | async function createPublicProjectViaApi( function createProjectViaApi (line 222) | async function createProjectViaApi( function archiveProjectViaApi (line 253) | async function archiveProjectViaApi( function createBillableProjectViaApi (line 284) | async function createBillableProjectViaApi( function createClientViaApi (line 295) | async function createClientViaApi(ctx: TestContext, data: { name: string... function createProjectWithClientViaApi (line 305) | async function createProjectWithClientViaApi( function createTaskViaApi (line 318) | async function createTaskViaApi( function createTagViaApi (line 336) | async function createTagViaApi(ctx: TestContext, data: { name: string }) { function createTimeEntryViaApi (line 346) | async function createTimeEntryViaApi( function createProjectMemberViaApi (line 378) | async function createProjectMemberViaApi( function getMembersViaApi (line 397) | async function getMembersViaApi(ctx: TestContext) { function updateMemberBillableRateViaApi (line 413) | async function updateMemberBillableRateViaApi( function createTimeEntryWithProjectViaApi (line 431) | async function createTimeEntryWithProjectViaApi( function createTimeEntryWithProjectAndTaskViaApi (line 445) | async function createTimeEntryWithProjectAndTaskViaApi( function createTimeEntryWithTagViaApi (line 462) | async function createTimeEntryWithTagViaApi( function createBareTimeEntryViaApi (line 476) | async function createBareTimeEntryViaApi( function createTimeEntryWithBillableStatusViaApi (line 484) | async function createTimeEntryWithBillableStatusViaApi( function createPlaceholderMemberViaImportApi (line 500) | async function createPlaceholderMemberViaImportApi( function updateOrganizationSettingViaApi (line 529) | async function updateOrganizationSettingViaApi( function updateOrganizationCurrencyViaWeb (line 542) | async function updateOrganizationCurrencyViaWeb( function createMultipleTimeEntriesViaApi (line 563) | async function createMultipleTimeEntriesViaApi( function getInvitationsViaApi (line 583) | async function getInvitationsViaApi(ctx: TestContext) { FILE: e2e/utils/currentTimeEntry.ts function startOrStopTimerWithButton (line 4) | async function startOrStopTimerWithButton(page: Page) { function assertThatTimerHasStarted (line 12) | async function assertThatTimerHasStarted(page: Page) { function newTimeEntryResponse (line 21) | function newTimeEntryResponse( function assertThatTimerIsStopped (line 42) | async function assertThatTimerIsStopped(page: Page) { function stoppedTimeEntryResponse (line 51) | async function stoppedTimeEntryResponse(page: Page, { description = '', ... FILE: e2e/utils/mailpit.ts function searchEmails (line 8) | async function searchEmails( function getMessage (line 19) | async function getMessage( function getInvitationAcceptUrl (line 31) | async function getInvitationAcceptUrl( function getPasswordResetUrl (line 59) | async function getPasswordResetUrl( FILE: e2e/utils/members.ts function registerUser (line 10) | async function registerUser( function inviteAndAcceptMember (line 41) | async function inviteAndAcceptMember( function setupAdminUser (line 75) | async function setupAdminUser( function setupEmployeeUser (line 162) | async function setupEmployeeUser( FILE: e2e/utils/money.ts function formatCentsWithOrganizationDefaults (line 5) | function formatCentsWithOrganizationDefaults( FILE: e2e/utils/reporting.ts function goToReporting (line 9) | async function goToReporting(page: Page) { function goToReportingDetailed (line 13) | async function goToReportingDetailed(page: Page) { function createProject (line 21) | async function createProject(page: Page, projectName: string) { function createBillableProject (line 38) | async function createBillableProject(page: Page, projectName: string) { function createClient (line 57) | async function createClient(page: Page, clientName: string) { function createProjectWithClient (line 74) | async function createProjectWithClient(page: Page, projectName: string, ... function createTask (line 96) | async function createTask(page: Page, projectName: string, taskName: str... function createTimeEntryWithProject (line 118) | async function createTimeEntryWithProject( function createTimeEntryWithProjectAndTask (line 147) | async function createTimeEntryWithProjectAndTask( function createTimeEntryWithTag (line 184) | async function createTimeEntryWithTag(page: Page, tagName: string, durat... function createBareTimeEntry (line 217) | async function createBareTimeEntry(page: Page, description: string, dura... function createTimeEntryWithBillableStatus (line 236) | async function createTimeEntryWithBillableStatus( function waitForReportingUpdate (line 275) | async function waitForReportingUpdate(page: Page) { function waitForDetailedReportingUpdate (line 282) | async function waitForDetailedReportingUpdate(page: Page) { function goToReportingShared (line 296) | async function goToReportingShared(page: Page) { function saveAsSharedReport (line 300) | async function saveAsSharedReport( FILE: e2e/utils/table.ts function getTableRowNames (line 7) | async function getTableRowNames(table: Locator): Promise { FILE: e2e/utils/tags.ts function newTagResponse (line 3) | function newTagResponse(page: Page, { name = '' } = {}) { FILE: playwright/config.ts constant PLAYWRIGHT_BASE_URL (line 1) | const PLAYWRIGHT_BASE_URL = process.env.PLAYWRIGHT_BASE_URL ?? 'http://s... constant MAILPIT_BASE_URL (line 2) | const MAILPIT_BASE_URL = process.env.MAILPIT_BASE_URL ?? 'http://mailpit... constant TEST_USER_PASSWORD (line 3) | const TEST_USER_PASSWORD = 'amazingpassword123'; FILE: playwright/fixtures.ts type EmployeeFixture (line 10) | interface EmployeeFixture { type AdminFixture (line 15) | interface AdminFixture { FILE: resources/js/Components/Common/Project/constants.ts constant NO_CLIENT_ID (line 1) | const NO_CLIENT_ID = '__no_client__'; FILE: resources/js/app.ts method setup (line 43) | setup({ el, App, props, plugin }) { FILE: resources/js/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: resources/js/packages/api/src/index.ts type SolidTimeApi (line 9) | type SolidTimeApi = ApiOf; type InvitationsIndexResponse (line 11) | type InvitationsIndexResponse = ZodiosResponseByAlias; type Invitation (line 15) | type Invitation = InvitationsIndexResponse['data'][0]; type TimeEntryResponse (line 17) | type TimeEntryResponse = ZodiosResponseByAlias; type Project (line 30) | type Project = ProjectResponse['data'][0]; type CreateProjectBody (line 32) | type CreateProjectBody = ZodiosBodyByAlias; type UpdateProjectBody (line 34) | type UpdateProjectBody = ZodiosBodyByAlias; type ProjectMemberResponse (line 36) | type ProjectMemberResponse = ZodiosResponseByAlias; type CreateClientBody (line 46) | type CreateClientBody = ZodiosBodyByAlias; type UpdateClientBody (line 47) | type UpdateClientBody = ZodiosBodyByAlias; type TagIndexResponse (line 49) | type TagIndexResponse = ZodiosResponseByAlias; type Tag (line 50) | type Tag = TagIndexResponse['data'][0]; type TaskIndexResponse (line 52) | type TaskIndexResponse = ZodiosResponseByAlias; type Task (line 53) | type Task = TaskIndexResponse['data'][0]; type UpdateTaskBody (line 55) | type UpdateTaskBody = ZodiosBodyByAlias; type ClientIndexResponse (line 57) | type ClientIndexResponse = ZodiosResponseByAlias; type InviteMemberBody (line 65) | type InviteMemberBody = ZodiosBodyByAlias; type MemberRole (line 66) | type MemberRole = InviteMemberBody['role']; type CreateTagBody (line 68) | type CreateTagBody = ZodiosBodyByAlias; type UpdateTagBody (line 69) | type UpdateTagBody = ZodiosBodyByAlias; type ImportType (line 71) | type ImportType = ZodiosResponseByAlias['d... type ImportReport (line 72) | type ImportReport = ZodiosResponseByAlias; type ReportingResponse (line 74) | type ReportingResponse = ZodiosResponseByAlias; type UpdateReportBody (line 106) | type UpdateReportBody = ZodiosBodyByAlias; type CreateReportBodyProperties (line 107) | type CreateReportBodyProperties = CreateReportBody['properties']; type Report (line 108) | type Report = ReportIndexResponse['data'][0]; type ApiTokenIndexResponse (line 110) | type ApiTokenIndexResponse = ZodiosResponseByAlias; type UpdateInvoiceBody (line 123) | type UpdateInvoiceBody = ZodiosBodyByAlias; FILE: resources/js/packages/api/src/openapi.json.client.ts function createApiClient (line 4625) | function createApiClient(baseUrl: string, options?: ZodiosOptions) { FILE: resources/js/packages/ui/src/Buttons/index.ts type ButtonVariants (line 35) | type ButtonVariants = VariantProps; FILE: resources/js/packages/ui/src/CommandPalette/CommandPaletteTypes.ts type CommandPaletteCommand (line 4) | interface CommandPaletteCommand { type CommandPaletteGroup (line 13) | interface CommandPaletteGroup { type EntitySearchResult (line 19) | interface EntitySearchResult extends CommandPaletteCommand { FILE: resources/js/packages/ui/src/FullCalendar/calendarSettings.ts type CalendarSettings (line 1) | interface CalendarSettings { FILE: resources/js/packages/ui/src/FullCalendar/idleStatusPlugin.ts type WindowActivityInPeriod (line 4) | interface WindowActivityInPeriod { type ActivityPeriod (line 11) | interface ActivityPeriod { type ActivityStatusPluginOptions (line 18) | interface ActivityStatusPluginOptions { function getOrCreateTooltip (line 29) | function getOrCreateTooltip(): HTMLElement { function showTooltip (line 48) | function showTooltip(box: HTMLElement, tooltip: HTMLElement, content: st... function hideTooltip (line 81) | function hideTooltip(tooltip: HTMLElement) { function formatDuration (line 95) | function formatDuration(durationMinutes: number): string { function createTooltipContent (line 104) | function createTooltipContent( function renderActivityStatusBoxes (line 198) | function renderActivityStatusBoxes( function getSlotDuration (line 311) | function getSlotDuration(calendarEl: HTMLElement): number { function calculateBoxPosition (line 336) | function calculateBoxPosition( function cleanupActivityStatusPlugin (line 368) | function cleanupActivityStatusPlugin() { FILE: resources/js/packages/ui/src/FullCalendar/useVisualSnap.ts type VisualSnapOptions (line 4) | interface VisualSnapOptions { function useVisualSnap (line 11) | function useVisualSnap({ FILE: resources/js/packages/ui/src/field/index.ts type FieldVariants (line 28) | type FieldVariants = VariantProps; FILE: resources/js/packages/ui/src/index.ts type Window (line 2) | interface Window { FILE: resources/js/packages/ui/src/utils/cn.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: resources/js/packages/ui/src/utils/color.ts function getRandomColor (line 25) | function getRandomColor() { function getRandomColorWithSeed (line 29) | function getRandomColorWithSeed(seed: string) { FILE: resources/js/packages/ui/src/utils/money.ts type CurrencyFormat (line 3) | type CurrencyFormat = function formatMoney (line 11) | function formatMoney( function formatCents (line 36) | function formatCents( function getOrganizationCurrencySymbol (line 46) | function getOrganizationCurrencySymbol(currency: string) { FILE: resources/js/packages/ui/src/utils/number.ts type NumberFormat (line 1) | type NumberFormat = function formatNumber (line 14) | function formatNumber(value: number, format?: string): string { FILE: resources/js/packages/ui/src/utils/random.ts class Prando (line 6) | class Prando { method constructor (line 21) | constructor(seed?: number | string) { method next (line 47) | public next(min = 0, pseudoMax = 1): number { method nextInt (line 59) | public nextInt(min = 10, max = 100): number { method nextString (line 75) | public nextString( method nextChar (line 92) | public nextChar( method nextArrayItem (line 109) | public nextArrayItem(array: T[]): T { method nextBoolean (line 118) | public nextBoolean(): boolean { method skip (line 130) | public skip(iterations = 1): void { method reset (line 149) | public reset(): void { method recalculate (line 156) | private recalculate(): void { method xorshift (line 160) | private xorshift(value: number): number { method map (line 169) | private map( method hashCode (line 179) | private hashCode(str: string): number { method getSafeSeed (line 192) | private getSafeSeed(seed: number): number { FILE: resources/js/packages/ui/src/utils/select.ts function useSelectEvents (line 4) | function useSelectEvents( FILE: resources/js/packages/ui/src/utils/settings.ts function getWeekStart (line 1) | function getWeekStart() { function getUserTimezone (line 11) | function getUserTimezone() { FILE: resources/js/packages/ui/src/utils/time.ts type DateFormat (line 16) | type DateFormat = type WeekStartDay (line 25) | type WeekStartDay = 0 | 1 | 2 | 3 | 4 | 5 | 6; type TimeFormat (line 36) | type TimeFormat = '12-hours' | '24-hours'; type IntervalFormat (line 37) | type IntervalFormat = type TimeInputUnit (line 42) | type TimeInputUnit = 'minutes' | 'hours'; function getDayJsInstance (line 53) | function getDayJsInstance() { function formatHumanReadableDuration (line 73) | function formatHumanReadableDuration( function formatDuration (line 97) | function formatDuration(duration: number): string { function calculateDifference (line 105) | function calculateDifference(start: string, end: string | null) { function formatTime (line 117) | function formatTime(date: string, timeFormat: TimeFormat = '24-hours') { function getLocalizedDayJs (line 122) | function getLocalizedDayJs(timestamp?: string | null) { function getLocalizedDateFromTimestamp (line 126) | function getLocalizedDateFromTimestamp(timestamp: string) { function formatDate (line 134) | function formatDate(date: string, format: DateFormat = 'point-separated-... function formatDateLocalized (line 145) | function formatDateLocalized( function formatDateTimeLocalized (line 152) | function formatDateTimeLocalized( function formatWeek (line 161) | function formatWeek(date: string | null): string { function formatHumanReadableDate (line 169) | function formatHumanReadableDate(date: string) { function formatWeekday (line 195) | function formatWeekday(date: string) { function formatStartEnd (line 199) | function formatStartEnd( function parseTimeInput (line 211) | function parseTimeInput( FILE: resources/js/types/dom.d.ts type HtmlButtonType (line 1) | type HtmlButtonType = 'button' | 'submit' | 'reset'; FILE: resources/js/types/dom.ts type HtmlButtonType (line 1) | type HtmlButtonType = 'button' | 'submit' | 'reset'; FILE: resources/js/types/global.d.ts type Window (line 8) | interface Window { type ComponentCustomProperties (line 20) | interface ComponentCustomProperties { type PageProps (line 26) | interface PageProps extends InertiaPageProps, AppPageProps {} FILE: resources/js/types/inertia.d.ts type Props (line 4) | interface Props { FILE: resources/js/types/jetstream.ts type Permissions (line 3) | interface Permissions { type Session (line 11) | interface Session { type Membership (line 23) | interface Membership { type Role (line 27) | interface Role { type JetstreamUser (line 33) | type JetstreamUser = User & { type Token (line 36) | interface Token { FILE: resources/js/types/models.d.ts type Client (line 1) | interface Client { type Membership (line 9) | interface Membership { type Organization (line 17) | interface Organization { type OrganizationInvitation (line 29) | interface OrganizationInvitation { type Project (line 39) | interface Project { type Task (line 51) | interface Task { type OrganizationWithMembership (line 61) | type OrganizationWithMembership = Organization & { type User (line 64) | interface User { FILE: resources/js/types/models.ts type Client (line 1) | interface Client { type Membership (line 12) | interface Membership { type Organization (line 22) | interface Organization { type OrganizationInvitation (line 37) | interface OrganizationInvitation { type Project (line 50) | interface Project { type Task (line 65) | interface Task { type OrganizationWithMembership (line 78) | type OrganizationWithMembership = Organization & { membership: Membershi... type User (line 80) | interface User { FILE: resources/js/types/projects.d.ts type BillableKey (line 1) | type BillableKey = 'non-billable' | 'default-rate' | 'custom-rate'; FILE: resources/js/types/reporting.ts type ExportFormat (line 1) | type ExportFormat = 'xlsx' | 'csv' | 'ods' | 'pdf'; FILE: resources/js/types/time-entries.d.ts type TimeEntriesGroupedByType (line 3) | type TimeEntriesGroupedByType = TimeEntry & { timeEntries: TimeEntry[] }; FILE: resources/js/utils/billing.ts function isBillingActivated (line 4) | function isBillingActivated() { function isInvoicingActivated (line 12) | function isInvoicingActivated() { function isInTrial (line 20) | function isInTrial() { function daysLeftInTrial (line 30) | function daysLeftInTrial() { function isBlocked (line 42) | function isBlocked() { function isFreePlan (line 52) | function isFreePlan() { function hasActiveSubscription (line 56) | function hasActiveSubscription() { function isAllowedToPerformPremiumAction (line 66) | function isAllowedToPerformPremiumAction() { FILE: resources/js/utils/commandPaletteCommands.ts type CommandGroup (line 29) | type CommandGroup = type Command (line 38) | interface Command { constant GROUP_PRIORITIES (line 51) | const GROUP_PRIORITIES: Record = { function createNavigationCommands (line 61) | function createNavigationCommands( function createTimerCommands (line 229) | function createTimerCommands( function createActiveTimerCommands (line 284) | function createActiveTimerCommands( function createThemeCommands (line 354) | function createThemeCommands( function createCreateCommands (line 388) | function createCreateCommands( function createOrganizationCommands (line 458) | function createOrganizationCommands( function scoreEntity (line 478) | function scoreEntity(name: string, query: string, baseScore: number): nu... FILE: resources/js/utils/feedback.ts function openFeedback (line 1) | function openFeedback(): void { FILE: resources/js/utils/fetchAllPages.ts function fetchAllPages (line 6) | async function fetchAllPages( FILE: resources/js/utils/format.ts function capitalizeFirstLetter (line 1) | function capitalizeFirstLetter(string: string) { FILE: resources/js/utils/init.ts function initializeStores (line 3) | function initializeStores() { FILE: resources/js/utils/money.ts function getOrganizationCurrencyString (line 13) | function getOrganizationCurrencyString() { FILE: resources/js/utils/notification.ts type NotificationType (line 7) | type NotificationType = 'success' | 'error'; function addNotification (line 21) | function addNotification(type: NotificationType, title: string, message?... function removeNotification (line 30) | function removeNotification(uuid: string) { function handleApiRequestNotifications (line 37) | async function handleApiRequestNotifications( FILE: resources/js/utils/permissions.ts function currentUserHasPermission (line 9) | function currentUserHasPermission(permission: string) { function canUpdateOrganization (line 16) | function canUpdateOrganization() { function canViewProjects (line 20) | function canViewProjects() { function canCreateProjects (line 24) | function canCreateProjects() { function canUpdateProjects (line 28) | function canUpdateProjects() { function canDeleteProjects (line 32) | function canDeleteProjects() { function canViewProjectMembers (line 36) | function canViewProjectMembers() { function canCreateTasks (line 40) | function canCreateTasks() { function canUpdateTasks (line 44) | function canUpdateTasks() { function canDeleteTasks (line 48) | function canDeleteTasks() { function canCreateClients (line 52) | function canCreateClients() { function canUpdateClients (line 56) | function canUpdateClients() { function canDeleteClients (line 60) | function canDeleteClients() { function canViewClients (line 64) | function canViewClients() { function canViewMembers (line 68) | function canViewMembers() { function canUpdateMembers (line 72) | function canUpdateMembers() { function canDeleteMembers (line 76) | function canDeleteMembers() { function canMergeMembers (line 80) | function canMergeMembers() { function canMakeMembersPlaceholders (line 84) | function canMakeMembersPlaceholders() { function canInvitePlaceholderMembers (line 88) | function canInvitePlaceholderMembers() { function canCreateInvitations (line 92) | function canCreateInvitations() { function canViewTags (line 96) | function canViewTags() { function canCreateTags (line 100) | function canCreateTags() { function canUpdateTags (line 104) | function canUpdateTags() { function canDeleteTags (line 108) | function canDeleteTags() { function canManageBilling (line 112) | function canManageBilling() { function canViewReport (line 116) | function canViewReport() { function canUpdateReport (line 119) | function canUpdateReport() { function canDeleteReport (line 122) | function canDeleteReport() { function canViewAllTimeEntries (line 126) | function canViewAllTimeEntries() { function canViewInvoices (line 129) | function canViewInvoices() { function canCreateReports (line 132) | function canCreateReports() { FILE: resources/js/utils/prefetch.ts function prefetchDashboard (line 85) | function prefetchDashboard(queryClient: QueryClient) { function prefetchProjects (line 156) | function prefetchProjects(queryClient: QueryClient) { function prefetchTasks (line 167) | function prefetchTasks(queryClient: QueryClient) { function prefetchTags (line 178) | function prefetchTags(queryClient: QueryClient) { function prefetchClients (line 189) | function prefetchClients(queryClient: QueryClient) { function prefetchMembers (line 200) | function prefetchMembers(queryClient: QueryClient) { function prefetchReports (line 211) | function prefetchReports(queryClient: QueryClient) { function prefetchTimeEntries (line 222) | function prefetchTimeEntries(queryClient: QueryClient) { function prefetchCalendarTimeEntries (line 244) | function prefetchCalendarTimeEntries(queryClient: QueryClient) { function prefetchProjectMembers (line 260) | function prefetchProjectMembers(queryClient: QueryClient, projectId: str... function findPrefetcher (line 277) | function findPrefetcher(url: string): ((queryClient: QueryClient) => voi... function setupPrefetching (line 304) | function setupPrefetching(queryClient: QueryClient) { FILE: resources/js/utils/roles.ts function filterRoles (line 3) | function filterRoles(roles: Role[]) { FILE: resources/js/utils/session.ts function fetchToken (line 3) | async function fetchToken() { function isTokenValid (line 13) | function isTokenValid() { FILE: resources/js/utils/theme.ts type themeOption (line 4) | type themeOption = 'system' | 'light' | 'dark'; function useTheme (line 18) | function useTheme() { FILE: resources/js/utils/useAggregatedTimeEntriesQuery.ts function useAggregatedTimeEntriesQuery (line 10) | function useAggregatedTimeEntriesQuery( FILE: resources/js/utils/useClients.ts function createClient (line 12) | async function createClient(clientBody: CreateClientBody): Promise { function useClientsQuery (line 17) | function useClientsQuery() { FILE: resources/js/utils/useCommandPalette.ts constant GROUP_CONFIG (line 75) | const GROUP_CONFIG: { id: CommandGroupType; heading: string }[] = [ constant ENTITY_BADGE_CLASSES (line 85) | const ENTITY_BADGE_CLASSES: Record = { constant ENTITY_ICONS (line 94) | const ENTITY_ICONS: Record = { function useCommandPalette (line 102) | function useCommandPalette() { FILE: resources/js/utils/useCssVariable.ts function useCssVariable (line 3) | function useCssVariable(variableName: string) { FILE: resources/js/utils/useCurrentTimeEntry.ts function $reset (line 41) | function $reset() { function startLiveTimer (line 48) | function startLiveTimer() { function stopLiveTimer (line 56) | function stopLiveTimer() { function fetchCurrentTimeEntry (line 62) | async function fetchCurrentTimeEntry() { function startTimer (line 102) | async function startTimer() { function stopTimer (line 136) | async function stopTimer() { function updateTimer (line 164) | async function updateTimer() { function setActiveState (line 216) | async function setActiveState(newState: boolean) { FILE: resources/js/utils/useInvitations.ts function fetchAllInvitations (line 9) | async function fetchAllInvitations(organizationId: string): Promise { function useMembersQuery (line 17) | function useMembersQuery() { FILE: resources/js/utils/useOrganization.ts function switchOrganization (line 14) | function switchOrganization(organizationId: string) { function fetchOrganization (line 37) | async function fetchOrganization() { function updateOrganization (line 53) | async function updateOrganization(organizationBody: UpdateOrganizationBo... FILE: resources/js/utils/useOrganizationQuery.ts function useOrganizationQuery (line 5) | function useOrganizationQuery(organizationId: string) { FILE: resources/js/utils/useProjectMembers.ts function createProjectMember (line 12) | async function createProjectMember( function updateProjectMember (line 35) | async function updateProjectMember( function deleteProjectMember (line 60) | async function deleteProjectMember(projectId: string, projectMemberId: s... FILE: resources/js/utils/useProjectMembersQuery.ts function fetchAllProjectMembers (line 8) | async function fetchAllProjectMembers( function useProjectMembersQuery (line 20) | function useProjectMembersQuery(projectId: Ref | string) { FILE: resources/js/utils/useProjects.ts function createProject (line 12) | async function createProject(projectBody: CreateProjectBody) { function deleteProject (line 32) | async function deleteProject(projectId: string) { function updateProject (line 50) | async function updateProject(projectId: string, updateProjectBody: Updat... FILE: resources/js/utils/useProjectsQuery.ts function fetchAllProjects (line 8) | async function fetchAllProjects(organizationId: string): Promise { FILE: resources/js/utils/useTags.ts function deleteTag (line 12) | async function deleteTag(tagId: string) { function createTag (line 30) | async function createTag(name: string): Promise { FILE: resources/js/utils/useTagsQuery.ts function fetchAllTags (line 8) | async function fetchAllTags(organizationId: string): Promise { function useTagsQuery (line 17) | function useTagsQuery() { FILE: resources/js/utils/useTasks.ts function updateTask (line 12) | async function updateTask(taskId: string, taskBody: UpdateTaskBody) { function createTask (line 30) | async function createTask(task: CreateTaskBody) { function deleteTask (line 47) | async function deleteTask(taskId: string) { FILE: resources/js/utils/useTasksQuery.ts function fetchAllTasks (line 8) | async function fetchAllTasks(organizationId: string): Promise { function useTasksQuery (line 17) | function useTasksQuery() { FILE: resources/js/utils/useTimeEntriesCalendarQuery.ts function getExpandedCalendarDateRange (line 22) | function getExpandedCalendarDateRange( function getInitialWeekRange (line 49) | function getInitialWeekRange(): { start: Date; end: Date } { function createCalendarQueryKey (line 69) | function createCalendarQueryKey( function fetchAllCalendarEntries (line 84) | async function fetchAllCalendarEntries( function useTimeEntriesCalendarQuery (line 117) | function useTimeEntriesCalendarQuery( FILE: resources/js/utils/useTimeEntriesInfiniteQuery.ts function useTimeEntriesInfiniteQuery (line 7) | function useTimeEntriesInfiniteQuery() { FILE: resources/js/utils/useTimeEntriesMutations.ts function useTimeEntriesMutations (line 11) | function useTimeEntriesMutations() { FILE: resources/js/utils/useTimeEntriesReportQuery.ts function useTimeEntriesReportQuery (line 6) | function useTimeEntriesReportQuery( FILE: resources/js/utils/useUser.ts function getCurrentUserId (line 9) | function getCurrentUserId() { function getCurrentUser (line 13) | function getCurrentUser() { function getCurrentOrganizationId (line 17) | function getCurrentOrganizationId() { function getCurrentMembershipId (line 21) | function getCurrentMembershipId() { function getCurrentRole (line 26) | function getCurrentRole() { FILE: resources/js/ziggy.d.ts type RouteList (line 3) | interface RouteList { FILE: tests/CreatesApplication.php type CreatesApplication (line 10) | trait CreatesApplication method createApplication (line 15) | public function createApplication(): Application FILE: tests/Feature/AuthenticationTest.php class AuthenticationTest (line 12) | class AuthenticationTest extends TestCase method test_login_screen_can_be_rendered (line 16) | public function test_login_screen_can_be_rendered(): void method test_users_can_authenticate_using_the_login_screen (line 23) | public function test_users_can_authenticate_using_the_login_screen(): ... method test_users_can_not_authenticate_with_invalid_password (line 36) | public function test_users_can_not_authenticate_with_invalid_password(... FILE: tests/Feature/BrowserSessionsTest.php class BrowserSessionsTest (line 11) | class BrowserSessionsTest extends TestCase method test_other_browser_sessions_can_be_logged_out (line 15) | public function test_other_browser_sessions_can_be_logged_out(): void FILE: tests/Feature/CreateOrganizationTest.php class CreateOrganizationTest (line 16) | class CreateOrganizationTest extends TestCase method test_organizations_can_be_created (line 20) | public function test_organizations_can_be_created(): void FILE: tests/Feature/DeleteAccountTest.php class DeleteAccountTest (line 14) | class DeleteAccountTest extends TestCase method test_user_accounts_can_be_deleted (line 18) | public function test_user_accounts_can_be_deleted(): void method test_correct_password_must_be_provided_before_account_can_be_deleted (line 34) | public function test_correct_password_must_be_provided_before_account_... method test_user_account_can_not_be_deleted_if_attached_to_a_organization_with_multiple_users (line 49) | public function test_user_account_can_not_be_deleted_if_attached_to_a_... FILE: tests/Feature/DeleteOrganizationTest.php class DeleteOrganizationTest (line 14) | class DeleteOrganizationTest extends TestCase method test_organizations_can_be_deleted_and_users_of_the_organization_that_have_no_organization_get_a_new_one (line 18) | public function test_organizations_can_be_deleted_and_users_of_the_org... method test_personal_organizations_can_be_deleted_but_user_gets_an_new_one_if_this_is_the_only_one_left (line 43) | public function test_personal_organizations_can_be_deleted_but_user_ge... method test_organization_can_not_be_deleted_if_user_is_not_owner (line 61) | public function test_organization_can_not_be_deleted_if_user_is_not_ow... FILE: tests/Feature/EmailVerificationTest.php class EmailVerificationTest (line 16) | class EmailVerificationTest extends TestCase method test_email_verification_screen_can_be_rendered (line 20) | public function test_email_verification_screen_can_be_rendered(): void method test_email_can_be_verified (line 33) | public function test_email_can_be_verified(): void method test_email_can_not_verified_with_invalid_hash (line 59) | public function test_email_can_not_verified_with_invalid_hash(): void FILE: tests/Feature/InviteTeamMemberTest.php class InviteTeamMemberTest (line 16) | class InviteTeamMemberTest extends TestCase method test_team_members_can_no_longer_be_invited_to_team_over_jetstream (line 20) | public function test_team_members_can_no_longer_be_invited_to_team_ove... method test_team_member_invitations_can_no_longer_be_cancelled_over_jetstream (line 38) | public function test_team_member_invitations_can_no_longer_be_cancelle... method test_team_member_invitations_can_be_accepted (line 58) | public function test_team_member_invitations_can_be_accepted(): void method test_team_member_invitations_of_placeholder_can_be_accepted_and_migrates_date_to_real_user (line 85) | public function test_team_member_invitations_of_placeholder_can_be_acc... method test_team_member_accept_fails_if_user_with_that_email_does_not_exist (line 123) | public function test_team_member_accept_fails_if_user_with_that_email_... FILE: tests/Feature/LeaveTeamTest.php class LeaveTeamTest (line 11) | class LeaveTeamTest extends TestCase method test_users_can_no_longer_leave_team_over_jetstream (line 15) | public function test_users_can_no_longer_leave_team_over_jetstream(): ... FILE: tests/Feature/PasswordConfirmationTest.php class PasswordConfirmationTest (line 11) | class PasswordConfirmationTest extends TestCase method test_confirm_password_screen_can_be_rendered (line 15) | public function test_confirm_password_screen_can_be_rendered(): void method test_password_can_be_confirmed (line 24) | public function test_password_can_be_confirmed(): void method test_password_is_not_confirmed_with_invalid_password (line 36) | public function test_password_is_not_confirmed_with_invalid_password()... FILE: tests/Feature/PasswordResetTest.php class PasswordResetTest (line 14) | class PasswordResetTest extends TestCase method test_reset_password_link_screen_can_be_rendered (line 18) | public function test_reset_password_link_screen_can_be_rendered(): void method test_reset_password_link_can_be_requested (line 29) | public function test_reset_password_link_can_be_requested(): void method test_reset_password_screen_can_be_rendered (line 46) | public function test_reset_password_screen_can_be_rendered(): void method test_password_can_be_reset_with_valid_token (line 69) | public function test_password_can_be_reset_with_valid_token(): void FILE: tests/Feature/ProfileInformationTest.php class ProfileInformationTest (line 13) | class ProfileInformationTest extends TestCase method test_show_profile_information_succeeds (line 17) | public function test_show_profile_information_succeeds(): void method test_profile_information_can_be_updated (line 30) | public function test_profile_information_can_be_updated(): void FILE: tests/Feature/RegistrationTest.php class RegistrationTest (line 22) | class RegistrationTest extends TestCase method test_registration_screen_can_be_rendered (line 26) | public function test_registration_screen_can_be_rendered(): void method test_new_users_can_register (line 37) | public function test_new_users_can_register(): void method test_user_registration_fails_if_registration_is_deactivated (line 67) | public function test_user_registration_fails_if_registration_is_deacti... method test_new_user_can_not_register_with_likely_invalid_domain (line 92) | public function test_new_user_can_not_register_with_likely_invalid_dom... method test_new_user_can_register_with_uppercase_email (line 107) | public function test_new_user_can_register_with_uppercase_email(): void method test_new_users_can_consent_to_newsletter_during_registration (line 122) | public function test_new_users_can_consent_to_newsletter_during_regist... method test_new_users_can_register_and_frontend_can_send_timezone_for_user (line 149) | public function test_new_users_can_register_and_frontend_can_send_time... method test_new_users_can_register_and_uses_ip_lookup_service_to_get_information_about_currency_and_start_of_week (line 168) | public function test_new_users_can_register_and_uses_ip_lookup_service... method test_new_users_can_register_and_uses_ip_lookup_service_to_get_information_about_timezone_if_client_did_not_send_one (line 199) | public function test_new_users_can_register_and_uses_ip_lookup_service... method test_new_users_can_register_and_uses_ip_lookup_service_to_get_information_about_timezone_if_client_sends_invalid_one (line 230) | public function test_new_users_can_register_and_uses_ip_lookup_service... method test_new_users_can_register_and_legacy_timezone_from_client_is_mapped_to_new_timezone (line 261) | public function test_new_users_can_register_and_legacy_timezone_from_c... method test_new_users_can_register_and_ignores_invalid_timezones_from_frontend (line 292) | public function test_new_users_can_register_and_ignores_invalid_timezo... method test_new_users_can_not_register_if_user_with_email_already_exists (line 309) | public function test_new_users_can_not_register_if_user_with_email_alr... method test_new_users_can_register_if_placeholder_user_with_email_already_exists (line 329) | public function test_new_users_can_register_if_placeholder_user_with_e... FILE: tests/Feature/RemoveTeamMemberTest.php class RemoveTeamMemberTest (line 11) | class RemoveTeamMemberTest extends TestCase method test_team_members_can_no_longer_be_removed_from_teams_over_jetstream_endpoints (line 15) | public function test_team_members_can_no_longer_be_removed_from_teams_... FILE: tests/Feature/TwoFactorAuthenticationSettingsTest.php class TwoFactorAuthenticationSettingsTest (line 12) | class TwoFactorAuthenticationSettingsTest extends TestCase method test_two_factor_authentication_can_be_enabled (line 16) | public function test_two_factor_authentication_can_be_enabled(): void method test_recovery_codes_can_be_regenerated (line 32) | public function test_recovery_codes_can_be_regenerated(): void method test_two_factor_authentication_can_be_disabled (line 53) | public function test_two_factor_authentication_can_be_disabled(): void FILE: tests/Feature/UpdatePasswordTest.php class UpdatePasswordTest (line 12) | class UpdatePasswordTest extends TestCase method test_password_can_be_updated (line 16) | public function test_password_can_be_updated(): void method test_current_password_must_be_correct (line 29) | public function test_current_password_must_be_correct(): void method test_new_passwords_must_match (line 44) | public function test_new_passwords_must_match(): void FILE: tests/Feature/UpdateTeamMemberRoleTest.php class UpdateTeamMemberRoleTest (line 12) | class UpdateTeamMemberRoleTest extends TestCase method test_team_member_roles_can_no_longer_be_updated_over_jetstream (line 16) | public function test_team_member_roles_can_no_longer_be_updated_over_j... FILE: tests/Feature/UpdateTeamTest.php class UpdateTeamTest (line 11) | class UpdateTeamTest extends TestCase method test_team_update_page_shows_not_found_if_id_is_not_uuid (line 15) | public function test_team_update_page_shows_not_found_if_id_is_not_uui... method test_team_names_can_be_updated (line 28) | public function test_team_names_can_be_updated(): void FILE: tests/TestCase.php class TestCase (line 20) | abstract class TestCase extends BaseTestCase method setUp (line 26) | protected function setUp(): void method mockPrivateStorage (line 39) | protected function mockPrivateStorage(): void method mockPublicStorage (line 44) | protected function mockPublicStorage(): void method tearDown (line 49) | protected function tearDown(): void method assertEqualsIdsOfEloquentCollection (line 56) | protected function assertEqualsIdsOfEloquentCollection(array $ids, Col... method travelTo (line 69) | public function travelTo($date, $callback = null): void method assertBillableRateServiceIsUnused (line 74) | protected function assertBillableRateServiceIsUnused(): void method actAsOrganizationWithSubscription (line 84) | protected function actAsOrganizationWithSubscription(): void method actAsOrganizationWithoutSubscriptionAndWithoutTrial (line 94) | protected function actAsOrganizationWithoutSubscriptionAndWithoutTrial... FILE: tests/TestCaseWithDatabase.php class TestCaseWithDatabase (line 16) | abstract class TestCaseWithDatabase extends TestCase method createUserWithPermission (line 24) | protected function createUserWithPermission(array $permissions = [], b... method createUserWithRole (line 59) | public function createUserWithRole(Role $role, bool $employeesCanSeeBi... method enableQueryLog (line 87) | protected function enableQueryLog(): void method getQueryLog (line 93) | protected function getQueryLog(): array method assertQueryCount (line 102) | protected function assertQueryCount(int $count, string $message = ''):... FILE: tests/Unit/Console/Commands/Admin/OrganizationDeleteCommandTest.php class OrganizationDeleteCommandTest (line 15) | #[CoversClass(OrganizationDeleteCommand::class)] method test_it_calls_the_deletion_service_with_the_organization (line 18) | public function test_it_calls_the_deletion_service_with_the_organizati... method test_it_fails_if_organization_does_not_exist (line 37) | public function test_it_fails_if_organization_does_not_exist(): void method test_it_fails_if_organization_id_is_not_a_valid_uuid (line 50) | public function test_it_fails_if_organization_id_is_not_a_valid_uuid()... FILE: tests/Unit/Console/Commands/Admin/UserCreateCommandCommandTest.php class UserCreateCommandCommandTest (line 15) | #[CoversClass(UserCreateCommand::class)] method test_it_creates_user (line 18) | public function test_it_creates_user(): void method test_created_user_is_verified_if_option_is_set (line 41) | public function test_created_user_is_verified_if_option_is_set(): void method test_it_fails_if_user_with_email_already_exists (line 66) | public function test_it_fails_if_user_with_email_already_exists(): void method test_it_asks_for_password_if_option_is_set (line 88) | public function test_it_asks_for_password_if_option_is_set(): void FILE: tests/Unit/Console/Commands/Admin/UserVerifyCommandTest.php class UserVerifyCommandTest (line 14) | #[CoversClass(UserVerifyCommand::class)] method test_it_verifies_user_email (line 17) | public function test_it_verifies_user_email(): void method test_it_fails_if_user_does_not_exist (line 35) | public function test_it_fails_if_user_does_not_exist(): void method test_it_fails_if_user_email_is_already_verified (line 54) | public function test_it_fails_if_user_email_is_already_verified(): void FILE: tests/Unit/Console/Commands/Auth/AuthSendReminderForExpiringApiTokensCommandTest.php class AuthSendReminderForExpiringApiTokensCommandTest (line 19) | #[CoversClass(AuthSendReminderForExpiringApiTokensCommand::class)] method test_sends_mail_for_expired_api_tokens_but_ignores_the_one_where_the_mail_was_already_sent_and_ignores_non_api_tokens (line 22) | public function test_sends_mail_for_expired_api_tokens_but_ignores_the... method test_sends_mail_for_api_tokens_that_expire_soon_but_ignores_the_one_where_the_mail_was_already_sent_and_ignores_non_api_tokens (line 71) | public function test_sends_mail_for_api_tokens_that_expire_soon_but_ig... FILE: tests/Unit/Console/Commands/Correction/CorrectionPlaceholderMembersCommandTest.php class CorrectionPlaceholderMembersCommandTest (line 17) | #[CoversClass(CorrectionPlaceholderMembersCommand::class)] method test_sets_member_role_to_placeholder_if_user_is_placeholder (line 20) | public function test_sets_member_role_to_placeholder_if_user_is_placeh... method test_sets_member_role_to_placeholder_if_user_is_placeholder_dry_run (line 43) | public function test_sets_member_role_to_placeholder_if_user_is_placeh... FILE: tests/Unit/Console/Commands/Report/ReportSetExpiredToPrivateCommandTest.php class ReportSetExpiredToPrivateCommandTest (line 14) | #[CoversClass(ReportSetExpiredToPrivateCommand::class)] method test_command_sets_expired_reports_to_private (line 17) | public function test_command_sets_expired_reports_to_private(): void method test_command_sets_expired_reports_to_private_in_dry_run_mode (line 69) | public function test_command_sets_expired_reports_to_private_in_dry_ru... FILE: tests/Unit/Console/Commands/SelfHost/SelfHostCheckForUpdateCommandTest.php class SelfHostCheckForUpdateCommandTest (line 17) | #[CoversClass(SelfHostCheckForUpdateCommand::class)] method test_checks_for_update_and_saves_version_in_cache (line 21) | public function test_checks_for_update_and_saves_version_in_cache(): void method test_checks_for_update_fails_gracefully_if_response_has_error_status_code (line 37) | public function test_checks_for_update_fails_gracefully_if_response_ha... method test_checks_for_update_fails_gracefully_if_timeout_happens (line 53) | public function test_checks_for_update_fails_gracefully_if_timeout_hap... FILE: tests/Unit/Console/Commands/SelfHost/SelfHostDatabaseConsistencyCommandTest.php class SelfHostDatabaseConsistencyCommandTest (line 20) | #[CoversClass(SelfHostDatabaseConsistency::class)] method test_checks_that_task_need_to_be_part_of_project_in_time_entries (line 23) | public function test_checks_that_task_need_to_be_part_of_project_in_ti... method test_checks_that_client_id_is_the_client_id_of_the_project (line 41) | public function test_checks_that_client_id_is_the_client_id_of_the_pro... method test_checks_that_client_id_is_the_client_id_of_the_project_with_no_client_in_time_entry (line 61) | public function test_checks_that_client_id_is_the_client_id_of_the_pro... method test_checks_that_client_id_is_only_null_if_project_is_also_null (line 81) | public function test_checks_that_client_id_is_only_null_if_project_is_... method test_checks_that_every_user_needs_to_be_a_member_of_at_least_one_organization (line 100) | public function test_checks_that_every_user_needs_to_be_a_member_of_at... method test_checks_that_every_organization_needs_at_least_an_owner (line 114) | public function test_checks_that_every_organization_needs_at_least_an_... method test_checks_that_every_member_can_only_have_one_running_time_entry (line 129) | public function test_checks_that_every_member_can_only_have_one_runnin... method test_checks_that_users_have_a_current_organization_that_they_are_not_a_member_of (line 145) | public function test_checks_that_users_have_a_current_organization_tha... FILE: tests/Unit/Console/Commands/SelfHost/SelfHostGenerateKeysCommandTest.php class SelfHostGenerateKeysCommandTest (line 13) | #[CoversClass(SelfHostGenerateKeysCommand::class)] method test_generates_app_key_and_passport_keys_per_default_in_env_format (line 16) | public function test_generates_app_key_and_passport_keys_per_default_i... method test_generates_app_key_and_passport_keys_in_env_format_in_multiline_if_requested (line 31) | public function test_generates_app_key_and_passport_keys_in_env_format... method test_generates_app_key_and_passport_keys_in_yaml_format_if_requested (line 46) | public function test_generates_app_key_and_passport_keys_in_yaml_forma... method test_generates_app_fail_if_attribute_format_is_invalid (line 61) | public function test_generates_app_fail_if_attribute_format_is_invalid... FILE: tests/Unit/Console/Commands/SelfHost/SelfHostTelemetryCommandTest.php class SelfHostTelemetryCommandTest (line 16) | #[CoversClass(SelfHostTelemetryCommand::class)] method test_telemetry_sends_data_to_telemetry_endpoint_of_solidtime_cloud (line 20) | public function test_telemetry_sends_data_to_telemetry_endpoint_of_sol... method test_telemetry_sends_fails_gracefully_if_response_has_error_status_code (line 36) | public function test_telemetry_sends_fails_gracefully_if_response_has_... method test_telemetry_sends_fails_gracefully_if_timeout_happens (line 52) | public function test_telemetry_sends_fails_gracefully_if_timeout_happe... FILE: tests/Unit/Console/Commands/TimeEntry/TimeEntrySendStillRunningMailsCommandTest.php class TimeEntrySendStillRunningMailsCommandTest (line 17) | #[CoversClass(TimeEntrySendStillRunningMailsCommand::class)] method test_sends_mails_for_still_running_time_entries (line 20) | public function test_sends_mails_for_still_running_time_entries(): void method test_does_not_send_emails_for_not_running_time_entries (line 48) | public function test_does_not_send_emails_for_not_running_time_entries... method test_does_not_send_emails_for_running_time_entries_that_are_short_than_the_threshold (line 70) | public function test_does_not_send_emails_for_running_time_entries_tha... method test_does_not_send_emails_for_running_time_entries_that_are_longer_than_the_threshold_but_already_received_the_email (line 92) | public function test_does_not_send_emails_for_running_time_entries_tha... method test_dry_run_option_does_not_send_mails_but_outputs_what_would_happen (line 115) | public function test_dry_run_option_does_not_send_mails_but_outputs_wh... method test_does_not_send_emails_for_placeholder_users (line 139) | public function test_does_not_send_emails_for_placeholder_users(): void FILE: tests/Unit/Console/KernelTest.php class KernelTest (line 11) | #[CoversClass(Kernel::class)] method test_self_host_commands_schedule_time_is_consistent_with_app_key (line 14) | public function test_self_host_commands_schedule_time_is_consistent_wi... method test_self_hosting_telemetry_can_be_activated (line 51) | public function test_self_hosting_telemetry_can_be_activated(): void method test_self_hosting_telemetry_can_be_deactivated (line 67) | public function test_self_hosting_telemetry_can_be_deactivated(): void method test_self_hosting_check_for_update_can_be_activated (line 83) | public function test_self_hosting_check_for_update_can_be_activated():... method test_self_hosting_check_for_update_can_be_deactivated (line 99) | public function test_self_hosting_check_for_update_can_be_deactivated(... FILE: tests/Unit/Database/MigrationTest.php class MigrationTest (line 10) | class MigrationTest extends TestCase method test_fresh_migration_and_rollback_runs_successfully (line 14) | public function test_fresh_migration_and_rollback_runs_successfully():... FILE: tests/Unit/Database/SeederTest.php class SeederTest (line 11) | class SeederTest extends TestCase method test_running_the_seeder_multiple_times_runs_successfully (line 15) | public function test_running_the_seeder_multiple_times_runs_successful... method test_fresh_migration_with_seeder_and_rollback_runs_successfully (line 24) | public function test_fresh_migration_with_seeder_and_rollback_runs_suc... method setupForSeeder (line 33) | private function setupForSeeder(): void FILE: tests/Unit/Endpoint/Api/V1/ApiEndpointTestAbstract.php class ApiEndpointTestAbstract (line 10) | class ApiEndpointTestAbstract extends TestCaseWithDatabase method assertResponseCode (line 12) | protected function assertResponseCode(TestResponse $response, int $sta... FILE: tests/Unit/Endpoint/Api/V1/ApiTokenEndpointTest.php class ApiTokenEndpointTest (line 14) | #[UsesClass(ApiTokenController::class)] method test_index_endpoint_returns_list_api_tokens (line 17) | public function test_index_endpoint_returns_list_api_tokens(): void method test_index_endpoint_returns_api_tokens_ordered_by_created_at_descending (line 49) | public function test_index_endpoint_returns_api_tokens_ordered_by_crea... method test_store_endpoint_creates_new_api_token (line 74) | public function test_store_endpoint_creates_new_api_token(): void method test_store_fails_if_personal_access_client_is_not_configured (line 101) | public function test_store_fails_if_personal_access_client_is_not_conf... method test_revoke_endpoint_revokes_api_token (line 121) | public function test_revoke_endpoint_revokes_api_token(): void method test_revoke_fails_if_token_is_not_personal_access_token (line 140) | public function test_revoke_fails_if_token_is_not_personal_access_toke... method test_revoke_fails_if_token_with_id_does_not_exist (line 160) | public function test_revoke_fails_if_token_with_id_does_not_exist(): void method test_revoke_fails_if_the_token_does_not_belong_to_the_user (line 173) | public function test_revoke_fails_if_the_token_does_not_belong_to_the_... method test_destroy_endpoint_deletes_api_token (line 193) | public function test_destroy_endpoint_deletes_api_token(): void method test_destroy_fails_if_token_is_not_personal_access_token (line 209) | public function test_destroy_fails_if_token_is_not_personal_access_tok... method test_destroy_fails_if_token_with_id_does_not_exist (line 228) | public function test_destroy_fails_if_token_with_id_does_not_exist(): ... method test_destroy_fails_if_the_token_does_not_belong_to_the_user (line 241) | public function test_destroy_fails_if_the_token_does_not_belong_to_the... method createPersonalAccessClient (line 260) | private function createPersonalAccessClient(): Client method createClient (line 269) | private function createClient(): Client FILE: tests/Unit/Endpoint/Api/V1/ChartEndpointTest.php class ChartEndpointTest (line 11) | class ChartEndpointTest extends EndpointTestAbstract method test_weekly_project_overview_endpoint_fails_if_user_has_no_permission_to_view_chart (line 13) | public function test_weekly_project_overview_endpoint_fails_if_user_ha... method test_weekly_project_overview_endpoint_returns_chart_data (line 28) | public function test_weekly_project_overview_endpoint_returns_chart_da... method test_latest_tasks_endpoint_fails_if_user_has_no_permission_to_view_chart (line 43) | public function test_latest_tasks_endpoint_fails_if_user_has_no_permis... method test_latest_tasks_endpoint_returns_chart_data (line 58) | public function test_latest_tasks_endpoint_returns_chart_data(): void method test_last_seven_days_endpoint_fails_if_user_has_no_permission_to_view_chart (line 73) | public function test_last_seven_days_endpoint_fails_if_user_has_no_per... method test_last_seven_days_endpoint_returns_chart_data (line 88) | public function test_last_seven_days_endpoint_returns_chart_data(): void method test_latest_team_activity_endpoint_fails_if_user_has_no_permission_to_view_chart_for_the_whole_orgnaization (line 103) | public function test_latest_team_activity_endpoint_fails_if_user_has_n... method test_latest_team_activity_endpoint_returns_chart_data (line 118) | public function test_latest_team_activity_endpoint_returns_chart_data(... method test_daily_tracked_hours_endpoint_fails_if_user_has_no_permission_to_view_chart (line 133) | public function test_daily_tracked_hours_endpoint_fails_if_user_has_no... method test_daily_tracked_hours_endpoint_returns_chart_data (line 148) | public function test_daily_tracked_hours_endpoint_returns_chart_data()... method test_total_weekly_time_endpoint_fails_if_user_has_no_permission_to_view_chart (line 163) | public function test_total_weekly_time_endpoint_fails_if_user_has_no_p... method test_total_weekly_time_endpoint_returns_chart_data (line 178) | public function test_total_weekly_time_endpoint_returns_chart_data(): ... method test_total_weekly_billable_time_endpoint_fails_if_user_has_no_permission_to_view_chart (line 193) | public function test_total_weekly_billable_time_endpoint_fails_if_user... method test_total_weekly_billable_time_endpoint_returns_chart_data (line 208) | public function test_total_weekly_billable_time_endpoint_returns_chart... method test_total_weekly_billable_amount_endpoint_fails_if_user_has_no_permission_to_view_chart (line 223) | public function test_total_weekly_billable_amount_endpoint_fails_if_us... method test_total_weekly_billable_amount_endpoint_fails_if_the_user_is_an_employee_but_the_organization_does_not_allow_employees_to_view_billable_rates (line 238) | public function test_total_weekly_billable_amount_endpoint_fails_if_th... method test_total_weekly_billable_amount_endpoint_returns_chart_data (line 256) | public function test_total_weekly_billable_amount_endpoint_returns_cha... method test_weekly_history_endpoint_fails_if_user_has_no_permission_to_view_chart (line 274) | public function test_weekly_history_endpoint_fails_if_user_has_no_perm... method test_weekly_history_endpoint_returns_chart_data (line 289) | public function test_weekly_history_endpoint_returns_chart_data(): void FILE: tests/Unit/Endpoint/Api/V1/ClientEndpointTest.php class ClientEndpointTest (line 15) | #[UsesClass(ClientController::class)] method test_index_endpoint_fails_if_user_has_no_permission_to_view_clients (line 18) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_returns_list_of_all_clients_of_organization_ordered_by_created_at_desc_per_default (line 32) | public function test_index_endpoint_returns_list_of_all_clients_of_org... method test_index_endpoint_returns_list_of_clients_assigned_to_employee_user (line 61) | public function test_index_endpoint_returns_list_of_clients_assigned_t... method test_index_endpoint_without_filter_archived_returns_only_non_archived_clients (line 92) | public function test_index_endpoint_without_filter_archived_returns_on... method test_index_endpoint_with_filter_archived_true_returns_only_archived_clients (line 112) | public function test_index_endpoint_with_filter_archived_true_returns_... method test_index_endpoint_with_filter_archived_false_returns_only_non_archived_clients (line 135) | public function test_index_endpoint_with_filter_archived_false_returns... method test_index_endpoint_with_filter_archived_all_returns_all_clients (line 158) | public function test_index_endpoint_with_filter_archived_all_returns_a... method test_store_endpoint_fails_if_user_has_no_permission_to_create_clients (line 181) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_fails_if_client_with_same_name_already_exists (line 196) | public function test_store_endpoint_fails_if_client_with_same_name_alr... method test_store_endpoint_fails_if_client_with_same_name_exists_in_different_organization (line 218) | public function test_store_endpoint_fails_if_client_with_same_name_exi... method test_store_endpoint_creates_new_client (line 238) | public function test_store_endpoint_creates_new_client(): void method test_update_endpoint_fails_if_user_has_no_permission_to_update_clients (line 260) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_fails_if_user_is_not_part_of_client_organization (line 277) | public function test_update_endpoint_fails_if_user_is_not_part_of_clie... method test_update_endpoint_fails_if_client_if_client_with_same_name_already_exists (line 302) | public function test_update_endpoint_fails_if_client_if_client_with_sa... method test_update_endpoint_updates_client_name_even_if_client_with_same_name_exists_in_different_organization (line 329) | public function test_update_endpoint_updates_client_name_even_if_clien... method test_update_endpoint_updates_client (line 354) | public function test_update_endpoint_updates_client(): void method test_update_endpoint_can_archive_a_client (line 381) | public function test_update_endpoint_can_archive_a_client(): void method test_update_endpoint_can_unarchive_a_client (line 407) | public function test_update_endpoint_can_unarchive_a_client(): void method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_clients (line 433) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_fails_if_user_is_not_part_of_client_organization (line 447) | public function test_destroy_endpoint_fails_if_user_is_not_part_of_cli... method test_destroy_endpoint_fails_if_client_is_still_in_use_by_project (line 469) | public function test_destroy_endpoint_fails_if_client_is_still_in_use_... method test_destroy_endpoint_deletes_client (line 490) | public function test_destroy_endpoint_deletes_client(): void FILE: tests/Unit/Endpoint/Api/V1/CurrencyEndpointTest.php class CurrencyEndpointTest (line 11) | #[CoversClass(CurrencyController::class)] method test_index_return_list_of_available_currencies_incl_symbol (line 15) | public function test_index_return_list_of_available_currencies_incl_sy... FILE: tests/Unit/Endpoint/Api/V1/ExportEndpointTest.php class ExportEndpointTest (line 17) | #[UsesClass(ExportController::class)] method test_export_fails_if_user_does_not_have_permission (line 20) | public function test_export_fails_if_user_does_not_have_permission(): ... method test_export_return_error_message_if_export_fails (line 36) | public function test_export_return_error_message_if_export_fails(): void method test_export_calls_export_service_if_user_has_permission (line 63) | public function test_export_calls_export_service_if_user_has_permissio... FILE: tests/Unit/Endpoint/Api/V1/ImportEndpointTest.php class ImportEndpointTest (line 16) | #[UsesClass(ImportController::class)] method test_index_fails_if_user_does_not_have_permission (line 19) | public function test_index_fails_if_user_does_not_have_permission(): void method test_index_returns_importers_if_user_has_permission (line 33) | public function test_index_returns_importers_if_user_has_permission():... method test_import_fails_if_user_does_not_have_permission (line 61) | public function test_import_fails_if_user_does_not_have_permission(): ... method test_import_fails_if_data_can_not_be_base64_decoded (line 79) | public function test_import_fails_if_data_can_not_be_base64_decoded():... method test_import_return_error_message_if_import_fails (line 100) | public function test_import_return_error_message_if_import_fails(): void method test_import_calls_import_service_if_user_has_permission (line 129) | public function test_import_calls_import_service_if_user_has_permissio... FILE: tests/Unit/Endpoint/Api/V1/InvitationEndpointTest.php class InvitationEndpointTest (line 17) | #[UsesClass(InvitationController::class)] method test_index_fails_if_user_has_no_permission_to_view_invitations (line 20) | public function test_index_fails_if_user_has_no_permission_to_view_inv... method test_index_returns_invitations_of_organization (line 33) | public function test_index_returns_invitations_of_organization(): void method test_index_returns_invitations_ordered_by_created_at_descending (line 58) | public function test_index_returns_invitations_ordered_by_created_at_d... method test_store_fails_if_user_has_no_permission_to_create_invitations (line 84) | public function test_store_fails_if_user_has_no_permission_to_create_i... method test_store_fails_if_user_invites_with_role_owner (line 100) | public function test_store_fails_if_user_invites_with_role_owner(): void method test_store_fails_if_user_invites_with_role_placeholder (line 119) | public function test_store_fails_if_user_invites_with_role_placeholder... method test_store_fails_if_user_invites_user_who_is_already_member_of_organization (line 138) | public function test_store_fails_if_user_invites_user_who_is_already_m... method test_store_fails_if_an_invitation_with_the_same_email_already_exists (line 158) | public function test_store_fails_if_an_invitation_with_the_same_email_... method test_store_works_if_user_invites_user_who_is_also_a_placeholder (line 185) | public function test_store_works_if_user_invites_user_who_is_also_a_pl... method test_store_invites_user_to_organization (line 211) | public function test_store_invites_user_to_organization(): void method test_resend_fails_if_user_has_no_permission_to_resend_the_invitation (line 235) | public function test_resend_fails_if_user_has_no_permission_to_resend_... method test_resend_fails_if_invitation_belongs_to_different_organization (line 254) | public function test_resend_fails_if_invitation_belongs_to_different_o... method test_resend_resends_invitation_email (line 272) | public function test_resend_resends_invitation_email(): void method test_delete_fails_if_user_has_no_permission_to_remove_invitations (line 293) | public function test_delete_fails_if_user_has_no_permission_to_remove_... method test_delete_fails_if_invitation_belongs_to_different_organization (line 307) | public function test_delete_fails_if_invitation_belongs_to_different_o... method test_delete_removes_invitation (line 323) | public function test_delete_removes_invitation(): void FILE: tests/Unit/Endpoint/Api/V1/MemberEndpointTest.php class MemberEndpointTest (line 24) | #[UsesClass(MemberController::class)] method test_index_fails_if_user_has_no_permission_to_view_members (line 27) | public function test_index_fails_if_user_has_no_permission_to_view_mem... method test_index_returns_members_of_organization (line 40) | public function test_index_returns_members_of_organization(): void method test_index_returns_members_ordered_by_created_at_descending (line 55) | public function test_index_returns_members_ordered_by_created_at_desce... method test_update_member_fails_if_user_has_no_permission_to_update_members (line 87) | public function test_update_member_fails_if_user_has_no_permission_to_... method test_update_member_fails_if_member_is_not_part_of_org (line 103) | public function test_update_member_fails_if_member_is_not_part_of_org(... method test_update_member_succeeds_if_data_is_valid (line 124) | public function test_update_member_succeeds_if_data_is_valid(): void method test_update_member_can_update_billable_rate_of_member_and_update_time_entries (line 148) | public function test_update_member_can_update_billable_rate_of_member_... method test_update_member_can_update_role (line 173) | public function test_update_member_can_update_role(): void method test_update_member_allows_role_owner_in_request_if_that_would_not_the_role (line 194) | public function test_update_member_allows_role_owner_in_request_if_tha... method test_update_member_fails_if_user_tries_to_change_role_to_owner (line 211) | public function test_update_member_fails_if_user_tries_to_change_role_... method test_update_member_fails_if_user_tries_to_change_the_role_of_a_placeholder (line 230) | public function test_update_member_fails_if_user_tries_to_change_the_r... method test_merge_into_fails_if_url_member_is_not_part_of_organization (line 254) | public function test_merge_into_fails_if_url_member_is_not_part_of_org... method test_merge_into_returns_validation_error_if_member_in_body_does_not_belong_to_organization (line 276) | public function test_merge_into_returns_validation_error_if_member_in_... method test_merge_into_fails_if_from_member_is_not_a_placeholder (line 306) | public function test_merge_into_fails_if_from_member_is_not_a_placehol... method test_merge_into_fails_if_user_has_no_permission_to_merge_members (line 333) | public function test_merge_into_fails_if_user_has_no_permission_to_mer... method test_merge_into_assigns_resources_of_source_member_to_destination_member_and_deletes_member (line 353) | public function test_merge_into_assigns_resources_of_source_member_to_... method test_merge_into_assigns_resources_of_source_member_to_destination_member_and_deletes_member_with_existing_destination_resources (line 393) | public function test_merge_into_assigns_resources_of_source_member_to_... method test_update_member_fails_if_user_tries_to_change_role_of_the_current_owner (line 440) | public function test_update_member_fails_if_user_tries_to_change_role_... method test_update_member_can_change_role_to_everything_expect_owner_with_the_member_update_permission (line 459) | public function test_update_member_can_change_role_to_everything_expec... method test_update_member_can_change_role_to_owner_if_auth_user_has_change_ownership_permission (line 479) | public function test_update_member_can_change_role_to_owner_if_auth_us... method test_update_member_role_fails_if_role_is_placeholder (line 506) | public function test_update_member_role_fails_if_role_is_placeholder()... method test_invite_placeholder_succeeds_if_data_is_valid (line 525) | public function test_invite_placeholder_succeeds_if_data_is_valid(): void method test_invite_placeholder_fails_if_the_placeholder_has_a_invalid_email_from_an_import (line 548) | public function test_invite_placeholder_fails_if_the_placeholder_has_a... method test_destroy_member_fails_if_user_has_no_permission_to_delete_members (line 580) | public function test_destroy_member_fails_if_user_has_no_permission_to... method test_destroy_member_fails_if_member_is_owner (line 597) | public function test_destroy_member_fails_if_member_is_owner(): void method test_destroy_member_fails_if_member_is_not_part_of_org (line 618) | public function test_destroy_member_fails_if_member_is_not_part_of_org... method test_destroy_endpoint_fails_if_member_is_still_in_use_by_a_time_entry (line 640) | public function test_destroy_endpoint_fails_if_member_is_still_in_use_... method test_destroy_endpoint_fails_if_member_is_still_in_use_by_a_project_member (line 664) | public function test_destroy_endpoint_fails_if_member_is_still_in_use_... method test_destroy_endpoint_also_deletes_user_if_member_is_placeholder (line 689) | public function test_destroy_endpoint_also_deletes_user_if_member_is_p... method test_destroy_endpoint_sets_current_organization_to_organization_the_user_is_still_member_of (line 719) | public function test_destroy_endpoint_sets_current_organization_to_org... method test_destroy_endpoint_creates_new_organization_and_sets_the_current_organization_to_it_if_user_is_not_member_of_any_other_organization (line 749) | public function test_destroy_endpoint_creates_new_organization_and_set... method test_destroy_endpoint_succeeds_if_member_is_still_in_use_by_a_project_member_and_delete_related_is_active (line 786) | public function test_destroy_endpoint_succeeds_if_member_is_still_in_u... method test_destroy_endpoint_succeeds_if_member_is_still_in_use_by_a_time_entry_and_delete_related_is_active (line 827) | public function test_destroy_endpoint_succeeds_if_member_is_still_in_u... method test_destroy_member_succeeds_if_data_is_valid (line 865) | public function test_destroy_member_succeeds_if_data_is_valid(): void method test_make_placeholder_fails_if_user_has_no_permission (line 890) | public function test_make_placeholder_fails_if_user_has_no_permission(... method test_make_placeholder_fails_if_user_is_already_a_placeholder (line 910) | public function test_make_placeholder_fails_if_user_is_already_a_place... method test_make_placeholder_fails_if_member_is_owner (line 938) | public function test_make_placeholder_fails_if_member_is_owner(): void method test_make_placeholder_fails_if_member_is_not_part_of_org (line 962) | public function test_make_placeholder_fails_if_member_is_not_part_of_o... method test_make_placeholder_creates_placeholder_and_attaches_resources_to_the_new_user (line 986) | public function test_make_placeholder_creates_placeholder_and_attaches... method test_invite_placeholder_fails_if_user_does_not_have_permission (line 1026) | public function test_invite_placeholder_fails_if_user_does_not_have_pe... method test_invite_placeholder_fails_if_user_is_not_part_of_organization (line 1046) | public function test_invite_placeholder_fails_if_user_is_not_part_of_o... method test_invite_placeholder_fails_if_there_is_already_an_invitation_with_the_same_email (line 1070) | public function test_invite_placeholder_fails_if_there_is_already_an_i... method test_invite_placeholder_returns_400_if_user_is_not_placeholder (line 1101) | public function test_invite_placeholder_returns_400_if_user_is_not_pla... FILE: tests/Unit/Endpoint/Api/V1/OrganizationEndpointTest.php class OrganizationEndpointTest (line 15) | #[UsesClass(OrganizationController::class)] method test_show_endpoint_fails_with_not_found_if_id_is_not_uuid (line 18) | public function test_show_endpoint_fails_with_not_found_if_id_is_not_u... method test_show_endpoint_fails_if_user_has_no_permission_to_view_organizations (line 33) | public function test_show_endpoint_fails_if_user_has_no_permission_to_... method test_show_endpoint_returns_organization (line 46) | public function test_show_endpoint_returns_organization(): void method test_show_endpoint_shows_billable_rate_for_members_with_role_employee_if_organization_allows_it (line 62) | public function test_show_endpoint_shows_billable_rate_for_members_wit... method test_show_endpoint_does_not_show_billable_rate_for_members_with_role_employee_if_organization_does_not_allow_it (line 79) | public function test_show_endpoint_does_not_show_billable_rate_for_mem... method test_update_endpoint_fails_if_user_has_no_permission_to_update_organizations (line 96) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_can_update_the_organization_name (line 113) | public function test_update_endpoint_can_update_the_organization_name(... method test_update_endpoint_can_update_formats (line 136) | public function test_update_endpoint_can_update_formats(): void method test_update_endpoint_can_update_billable_rate_of_organization (line 178) | public function test_update_endpoint_can_update_billable_rate_of_organ... method test_update_endpoint_can_update_the_setting_employees_can_see_billable_rates (line 209) | public function test_update_endpoint_can_update_the_setting_employees_... method test_update_endpoint_can_update_billable_rate_of_organization_and_update_time_entries (line 235) | public function test_update_endpoint_can_update_billable_rate_of_organ... FILE: tests/Unit/Endpoint/Api/V1/ProjectEndpointTest.php class ProjectEndpointTest (line 21) | #[UsesClass(ProjectController::class)] method test_index_endpoint_fails_if_user_has_no_permission_to_view_projects (line 24) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_returns_list_of_all_projects_of_organization_for_user_with_all_projects_permission (line 39) | public function test_index_endpoint_returns_list_of_all_projects_of_or... method test_index_endpoint_returns_projects_ordered_by_created_at_descending (line 57) | public function test_index_endpoint_returns_projects_ordered_by_create... method test_index_endpoint_without_filter_archived_returns_only_non_archived_projects (line 84) | public function test_index_endpoint_without_filter_archived_returns_on... method test_index_endpoint_with_filter_archived_true_returns_only_archived_projects (line 104) | public function test_index_endpoint_with_filter_archived_true_returns_... method test_index_endpoint_with_filter_archived_false_returns_only_non_archived_projects (line 127) | public function test_index_endpoint_with_filter_archived_false_returns... method test_index_endpoint_with_filter_archived_all_returns_all_projects (line 149) | public function test_index_endpoint_with_filter_archived_all_returns_a... method test_index_endpoint_returns_list_of_projects_of_organization_which_are_public_or_where_user_is_member_for_user_with_restricted_permission (line 171) | public function test_index_endpoint_returns_list_of_projects_of_organi... method test_index_endpoint_sets_billable_rate_to_null_if_member_is_employee_and_organization_does_not_allow_employees_to_see_billable_rates (line 190) | public function test_index_endpoint_sets_billable_rate_to_null_if_memb... method test_index_endpoint_does_not_set_billable_rate_to_null_if_member_is_employee_and_organization_allows_employees_to_see_billable_rates (line 219) | public function test_index_endpoint_does_not_set_billable_rate_to_null... method test_show_endpoint_fails_if_user_is_not_part_of_project_organization (line 248) | public function test_show_endpoint_fails_if_user_is_not_part_of_projec... method test_show_endpoint_fails_if_user_has_no_permission_to_view_projects (line 265) | public function test_show_endpoint_fails_if_user_has_no_permission_to_... method test_show_endpoint_returns_project (line 279) | public function test_show_endpoint_returns_project(): void method test_show_endpoint_fails_if_employee_tries_to_access_private_project_that_they_are_not_a_member_of (line 297) | public function test_show_endpoint_fails_if_employee_tries_to_access_p... method test_store_endpoint_fails_if_user_has_no_permission_to_create_projects (line 311) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_highest_possible_billable_rate_can_be_stored_in_database (line 330) | public function test_store_endpoint_highest_possible_billable_rate_can... method test_store_endpoint_fails_if_billable_rate_is_too_high (line 361) | public function test_store_endpoint_fails_if_billable_rate_is_too_high... method test_store_endpoint_creates_new_project (line 387) | public function test_store_endpoint_creates_new_project(): void method test_store_endpoint_ignores_estimated_time_if_pro_features_are_disabled (line 415) | public function test_store_endpoint_ignores_estimated_time_if_pro_feat... method test_store_endpoint_can_store_project_with_estimated_time_with_pro_features_enabled (line 451) | public function test_store_endpoint_can_store_project_with_estimated_t... method test_store_endpoint_can_create_project_if_project_name_already_exists_in_organization_but_with_different_client (line 488) | public function test_store_endpoint_can_create_project_if_project_name... method test_store_endpoint_fails_without_client_if_name_is_already_used_for_project_without_client_in_organization (line 523) | public function test_store_endpoint_fails_without_client_if_name_is_al... method test_store_endpoint_fails_with_client_if_name_is_already_used_for_the_same_client (line 551) | public function test_store_endpoint_fails_with_client_if_name_is_alrea... method test_store_endpoint_creates_project_if_name_is_used_in_other_organization (line 580) | public function test_store_endpoint_creates_project_if_name_is_used_in... method test_store_endpoint_creates_new_project_with_client (line 612) | public function test_store_endpoint_creates_new_project_with_client():... method test_store_endpoint_creates_new_project_with_billable_rate (line 641) | public function test_store_endpoint_creates_new_project_with_billable_... method test_update_endpoint_fails_if_user_is_not_part_of_project_organization (line 671) | public function test_update_endpoint_fails_if_user_is_not_part_of_proj... method test_update_endpoint_fails_if_user_has_no_permission_to_update_projects (line 695) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_can_update_project_if_project_name_already_exists_in_organization_but_with_different_client (line 716) | public function test_update_endpoint_can_update_project_if_project_nam... method test_update_endpoint_fails_without_client_if_name_is_already_used_for_project_without_client_in_organization (line 752) | public function test_update_endpoint_fails_without_client_if_name_is_a... method test_update_endpoint_fails_with_client_if_name_is_already_used_for_the_same_client (line 781) | public function test_update_endpoint_fails_with_client_if_name_is_alre... method test_update_endpoint_updates_the_client_id_of_the_associated_time_entries_if_the_client_of_the_project_changed (line 811) | public function test_update_endpoint_updates_the_client_id_of_the_asso... method test_update_endpoint_updates_the_client_id_of_the_associated_time_entries_if_the_client_of_the_project_is_removed (line 838) | public function test_update_endpoint_updates_the_client_id_of_the_asso... method test_update_endpoint_updates_the_client_id_of_the_associated_time_entries_if_the_client_of_the_project_is_added (line 864) | public function test_update_endpoint_updates_the_client_id_of_the_asso... method test_update_endpoint_updates_project_if_name_is_used_in_other_organization (line 890) | public function test_update_endpoint_updates_project_if_name_is_used_i... method test_update_endpoint_updates_project (line 925) | public function test_update_endpoint_updates_project(): void method test_update_endpoint_ignores_estimated_time_if_pro_features_are_disabled (line 960) | public function test_update_endpoint_ignores_estimated_time_if_pro_fea... method test_update_endpoint_can_store_project_with_estimated_time_with_pro_features_enabled (line 993) | public function test_update_endpoint_can_store_project_with_estimated_... method test_update_endpoint_does_not_update_billable_rates_of_time_entries_if_billable_rate_is_unchanged (line 1027) | public function test_update_endpoint_does_not_update_billable_rates_of... method test_update_endpoint_can_update_projects_billable_rate_and_update_time_entries (line 1056) | public function test_update_endpoint_can_update_projects_billable_rate... method test_update_endpoint_can_archive_a_project (line 1089) | public function test_update_endpoint_can_archive_a_project(): void method test_update_endpoint_can_unarchive_a_project (line 1118) | public function test_update_endpoint_can_unarchive_a_project(): void method test_destroy_endpoint_fails_if_user_is_not_part_of_project_organization (line 1147) | public function test_destroy_endpoint_fails_if_user_is_not_part_of_pro... method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_projects (line 1164) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_fails_if_project_is_still_in_use_by_a_task (line 1178) | public function test_destroy_endpoint_fails_if_project_is_still_in_use... method test_destroy_endpoint_fails_if_project_is_still_in_use_by_a_time_entry (line 1199) | public function test_destroy_endpoint_fails_if_project_is_still_in_use... method test_destroy_endpoint_deletes_project_with_project_members (line 1220) | public function test_destroy_endpoint_deletes_project_with_project_mem... FILE: tests/Unit/Endpoint/Api/V1/ProjectMemberEndpointTest.php class ProjectMemberEndpointTest (line 18) | #[UsesClass(ProjectMemberController::class)] method test_index_endpoint_fails_if_user_has_no_permission_to_view_project_members (line 21) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_fails_if_the_project_does_not_belong_to_given_organization (line 39) | public function test_index_endpoint_fails_if_the_project_does_not_belo... method test_index_endpoint_returns_list_of_all_project_members_of_a_project (line 62) | public function test_index_endpoint_returns_list_of_all_project_member... method test_index_endpoint_returns_project_members_ordered_by_created_at_descending (line 83) | public function test_index_endpoint_returns_project_members_ordered_by... method test_store_endpoint_fails_if_user_has_no_permission_to_add_members_to_project (line 113) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_fails_if_given_project_does_not_belong_to_organization (line 133) | public function test_store_endpoint_fails_if_given_project_does_not_be... method test_store_endpoint_fails_if_given_user_does_not_belong_to_organization (line 158) | public function test_store_endpoint_fails_if_given_user_does_not_belon... method test_store_endpoint_fails_if_user_is_a_placeholder (line 183) | public function test_store_endpoint_fails_if_user_is_a_placeholder(): ... method test_store_endpoint_fails_if_user_is_already_member_of_project (line 215) | public function test_store_endpoint_fails_if_user_is_already_member_of... method test_store_endpoint_creates_new_project_member_and_updates_billable_rate (line 247) | public function test_store_endpoint_creates_new_project_member_and_upd... method test_store_endpoint_creates_new_project_member_and_does_not_update_billable_rate_if_it_is_null (line 281) | public function test_store_endpoint_creates_new_project_member_and_doe... method test_update_endpoint_fails_if_project_member_is_not_part_of_organization (line 311) | public function test_update_endpoint_fails_if_project_member_is_not_pa... method test_update_endpoint_fails_if_user_has_no_permission_to_update_projects (line 334) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_updates_project_member_with_unchanged_billable_rate (line 352) | public function test_update_endpoint_updates_project_member_with_uncha... method test_update_endpoints_can_update_billable_rate_and_update_time_entries (line 377) | public function test_update_endpoints_can_update_billable_rate_and_upd... method test_destroy_endpoint_fails_if_user_is_not_part_of_project_members_organization (line 407) | public function test_destroy_endpoint_fails_if_user_is_not_part_of_pro... method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_project_members (line 430) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_deletes_project_member (line 448) | public function test_destroy_endpoint_deletes_project_member(): void method test_destroy_endpoint_updates_billable_rate_of_time_entries_if_project_member_had_billable_rate (line 472) | public function test_destroy_endpoint_updates_billable_rate_of_time_en... FILE: tests/Unit/Endpoint/Api/V1/Public/PublicReportEndpointTest.php class PublicReportEndpointTest (line 23) | class PublicReportEndpointTest extends ApiEndpointTestAbstract method test_show_fails_with_not_found_if_secret_is_incorrect (line 25) | public function test_show_fails_with_not_found_if_secret_is_incorrect(... method test_show_fails_with_not_found_if_no_secret_is_provided (line 39) | public function test_show_fails_with_not_found_if_no_secret_is_provide... method test_show_fails_with_not_found_if_report_is_not_public (line 51) | public function test_show_fails_with_not_found_if_report_is_not_public... method test_show_fails_with_not_found_if_report_is_expired (line 65) | public function test_show_fails_with_not_found_if_report_is_expired():... method test_show_returns_detailed_information_about_the_report (line 81) | public function test_show_returns_detailed_information_about_the_repor... method test_show_returns_detailed_information_about_the_report_with_not_expired_expiration_date (line 227) | public function test_show_returns_detailed_information_about_the_repor... method test_show_returns_detailed_information_about_the_report_with_all_available_filters (line 248) | public function test_show_returns_detailed_information_about_the_repor... method test_if_the_resources_behind_the_filters_no_longer_exist_the_report_ignores_those_filters_but_this_does_not_increase_the_visible_data (line 331) | public function test_if_the_resources_behind_the_filters_no_longer_exi... method test_show_returns_only_entries_without_project_when_none_project_filter_is_set (line 428) | public function test_show_returns_only_entries_without_project_when_no... method test_show_returns_entries_with_and_without_project_when_none_and_real_id_combined (line 474) | public function test_show_returns_entries_with_and_without_project_whe... method test_show_returns_only_entries_without_task_when_none_task_filter_is_set (line 526) | public function test_show_returns_only_entries_without_task_when_none_... method test_show_returns_only_entries_without_client_when_none_client_filter_is_set (line 574) | public function test_show_returns_only_entries_without_client_when_non... method test_show_returns_only_entries_without_tags_when_none_tag_filter_is_set (line 621) | public function test_show_returns_only_entries_without_tags_when_none_... FILE: tests/Unit/Endpoint/Api/V1/ReportEndpointTest.php class ReportEndpointTest (line 22) | #[UsesClass(ReportController::class)] method test_index_endpoint_fails_if_user_does_not_have_permission_to_view_reports (line 25) | public function test_index_endpoint_fails_if_user_does_not_have_permis... method test_index_endpoint_returns_list_of_all_reports_of_organization_ordered_by_created_at_desc_per_default (line 39) | public function test_index_endpoint_returns_list_of_all_reports_of_org... method test_store_endpoint_fails_if_user_has_no_permission_to_create_report (line 67) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_creates_new_report_with_minimal_properties (line 90) | public function test_store_endpoint_creates_new_report_with_minimal_pr... method test_store_endpoint_creates_new_report_with_all_properties (line 124) | public function test_store_endpoint_creates_new_report_with_all_proper... method test_store_endpoint_creates_new_report_with_rounding_properties (line 171) | public function test_store_endpoint_creates_new_report_with_rounding_p... method test_update_endpoint_fails_if_user_has_no_permission_to_update_report (line 226) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_fails_if_report_does_not_exist (line 242) | public function test_update_endpoint_fails_if_report_does_not_exist():... method test_update_endpoint_fails_if_report_does_not_belong_to_organization (line 259) | public function test_update_endpoint_fails_if_report_does_not_belong_t... method test_update_endpoint_can_update_only_the_name_of_the_report (line 277) | public function test_update_endpoint_can_update_only_the_name_of_the_r... method test_update_endpoint_can_update_only_the_description_of_the_report (line 301) | public function test_update_endpoint_can_update_only_the_description_o... method test_update_endpoint_can_set_a_report_from_private_to_public_which_generates_a_new_secret (line 325) | public function test_update_endpoint_can_set_a_report_from_private_to_... method test_update_endpoint_can_set_a_report_from_public_to_private_which_resets_the_secret (line 351) | public function test_update_endpoint_can_set_a_report_from_public_to_p... method test_update_endpoint_does_not_change_the_secret_of_a_public_report_if_it_is_set_to_public_again (line 377) | public function test_update_endpoint_does_not_change_the_secret_of_a_p... method test_update_endpoint_can_update_the_report_all_properties_set (line 404) | public function test_update_endpoint_can_update_the_report_all_propert... method test_update_endpoint_can_update_public_until_on_already_public_report (line 434) | public function test_update_endpoint_can_update_public_until_on_alread... method test_update_endpoint_can_clear_public_until_on_already_public_report (line 459) | public function test_update_endpoint_can_clear_public_until_on_already... method test_show_endpoint_fails_if_user_has_no_permission_to_view_report (line 482) | public function test_show_endpoint_fails_if_user_has_no_permission_to_... method test_show_endpoint_fails_if_report_does_not_exist (line 496) | public function test_show_endpoint_fails_if_report_does_not_exist(): void method test_show_endpoint_fails_if_report_does_not_belong_to_organization (line 511) | public function test_show_endpoint_fails_if_report_does_not_belong_to_... method test_show_endpoint_returns_detailed_report (line 527) | public function test_show_endpoint_returns_detailed_report(): void method test_store_endpoint_creates_report_with_none_filter_values (line 547) | public function test_store_endpoint_creates_report_with_none_filter_va... method test_store_endpoint_creates_report_with_none_combined_with_real_ids (line 582) | public function test_store_endpoint_creates_report_with_none_combined_... method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_report (line 625) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_fails_if_report_belongs_to_another_organization (line 639) | public function test_destroy_endpoint_fails_if_report_belongs_to_anoth... method test_destroy_endpoint_fails_if_report_does_not_exist (line 655) | public function test_destroy_endpoint_fails_if_report_does_not_exist()... method test_destroy_endpoint_deletes_a_report (line 670) | public function test_destroy_endpoint_deletes_a_report(): void FILE: tests/Unit/Endpoint/Api/V1/TagEndpointTest.php class TagEndpointTest (line 15) | #[UsesClass(TagController::class)] method test_index_endpoint_fails_if_user_has_no_permission_to_view_tags (line 18) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_returns_list_of_all_tags_of_organization_ordered_by_created_at_desc_per_default (line 32) | public function test_index_endpoint_returns_list_of_all_tags_of_organi... method test_store_endpoint_fails_if_user_has_no_permission_to_create_tags (line 60) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_fails_if_name_is_already_taken (line 75) | public function test_store_endpoint_fails_if_name_is_already_taken(): ... method test_store_endpoint_creates_tag_if_tag_name_is_only_used_in_other_organizations (line 99) | public function test_store_endpoint_creates_tag_if_tag_name_is_only_us... method test_store_endpoint_creates_new_tag (line 124) | public function test_store_endpoint_creates_new_tag(): void method test_update_endpoint_fails_if_user_has_no_permission_to_update_tags (line 146) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_fails_if_user_is_not_part_of_tag_organization (line 163) | public function test_update_endpoint_fails_if_user_is_not_part_of_tag_... method test_update_endpoint_fails_if_name_is_already_taken (line 188) | public function test_update_endpoint_fails_if_name_is_already_taken():... method test_update_endpoint_updates_tag_if_tag_name_is_only_used_in_other_organizations (line 210) | public function test_update_endpoint_updates_tag_if_tag_name_is_only_u... method test_update_endpoint_updates_tag (line 239) | public function test_update_endpoint_updates_tag(): void method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_tags (line 266) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_fails_if_user_is_not_part_of_tag_organization (line 280) | public function test_destroy_endpoint_fails_if_user_is_not_part_of_tag... method test_destroy_endpoint_fails_if_tag_is_still_in_use_by_a_time_entry (line 302) | public function test_destroy_endpoint_fails_if_tag_is_still_in_use_by_... method test_destroy_endpoint_deletes_tag (line 325) | public function test_destroy_endpoint_deletes_tag(): void FILE: tests/Unit/Endpoint/Api/V1/TaskEndpointTest.php class TaskEndpointTest (line 17) | #[UsesClass(TaskController::class)] method test_non_valid_uuid_for_organization_id_fails (line 20) | public function test_non_valid_uuid_for_organization_id_fails(): void method test_index_endpoint_fails_if_user_has_no_permission_to_view_tasks (line 35) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_validation_fails_if_project_id_is_not_pat (line 49) | public function test_index_endpoint_validation_fails_if_project_id_is_... method test_index_endpoint_returns_list_of_all_tasks_of_organization (line 63) | public function test_index_endpoint_returns_list_of_all_tasks_of_organ... method test_index_endpoint_returns_tasks_ordered_by_created_at_descending (line 81) | public function test_index_endpoint_returns_tasks_ordered_by_created_a... method test_index_endpoint_without_filter_done_returns_list_of_all_tasks_of_organization (line 108) | public function test_index_endpoint_without_filter_done_returns_list_o... method test_index_endpoint_with_filter_done_true_returns_list_of_all_done_tasks_of_organization (line 128) | public function test_index_endpoint_with_filter_done_true_returns_list... method test_index_endpoint_with_filter_done_false_returns_list_of_all_not_done_tasks_of_organization (line 148) | public function test_index_endpoint_with_filter_done_false_returns_lis... method test_index_endpoint_with_filter_done_all_returns_list_of_all_tasks_of_organization (line 168) | public function test_index_endpoint_with_filter_done_all_returns_list_... method test_index_endpoint_returns_list_of_all_tasks_with_access_of_organization_if_user_has_no_all_permission (line 187) | public function test_index_endpoint_returns_list_of_all_tasks_with_acc... method test_index_endpoint_returns_list_of_all_tasks_of_organization_filtered_by_project (line 210) | public function test_index_endpoint_returns_list_of_all_tasks_of_organ... method test_index_endpoint_validation_fails_if_project_id_does_not_belong_to_organization (line 233) | public function test_index_endpoint_validation_fails_if_project_id_doe... method test_index_endpoint_validation_fails_if_project_is_not_visible_by_user_and_user_does_not_have_tasks_all_permission (line 259) | public function test_index_endpoint_validation_fails_if_project_is_not... method test_index_endpoint_returns_list_of_all_tasks_of_organization_filtered_by_project_if_user_has_access_to_project (line 282) | public function test_index_endpoint_returns_list_of_all_tasks_of_organ... method test_store_endpoint_fails_if_user_has_no_permission_to_create_tasks (line 305) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_fails_if_task_with_same_name_already_exists_in_same_project (line 325) | public function test_store_endpoint_fails_if_task_with_same_name_alrea... method test_store_endpoint_creates_new_task_even_if_task_with_same_name_already_exists_in_other_project (line 350) | public function test_store_endpoint_creates_new_task_even_if_task_with... method test_store_endpoint_creates_new_task_if_user_has_permission_to_create_tasks (line 378) | public function test_store_endpoint_creates_new_task_if_user_has_permi... method test_store_endpoint_ignores_estimated_time_if_pro_features_are_disabled (line 402) | public function test_store_endpoint_ignores_estimated_time_if_pro_feat... method test_store_endpoint_can_store_with_estimated_time_with_pro_features_enabled (line 434) | public function test_store_endpoint_can_store_with_estimated_time_with... method test_update_endpoint_fails_if_user_has_no_permission (line 467) | public function test_update_endpoint_fails_if_user_has_no_permission()... method test_update_endpoint_fails_if_task_with_same_name_already_exists_in_same_project (line 491) | public function test_update_endpoint_fails_if_task_with_same_name_alre... method test_update_endpoint_updates_task_if_task_with_same_name_already_exists_in_other_project (line 519) | public function test_update_endpoint_updates_task_if_task_with_same_na... method test_update_endpoint_updates_task_if_user_has_permission (line 549) | public function test_update_endpoint_updates_task_if_user_has_permissi... method test_update_endpoint_can_set_task_to_done (line 571) | public function test_update_endpoint_can_set_task_to_done(): void method test_update_endpoint_can_set_task_to_not_done (line 596) | public function test_update_endpoint_can_set_task_to_not_done(): void method test_update_endpoint_ignores_estimated_time_if_pro_features_are_disabled (line 619) | public function test_update_endpoint_ignores_estimated_time_if_pro_fea... method test_update_endpoint_can_update_estimated_time_with_pro_features_enabled (line 647) | public function test_update_endpoint_can_update_estimated_time_with_pr... method test_delete_endpoint_deletes_tasks_if_user_has_permission (line 676) | public function test_delete_endpoint_deletes_tasks_if_user_has_permiss... method test_destroy_endpoint_fails_if_task_is_still_in_use_by_a_time_entry (line 695) | public function test_destroy_endpoint_fails_if_task_is_still_in_use_by... method test_delete_endpoint_fails_if_user_has_no_permission_to_delete_tasks (line 716) | public function test_delete_endpoint_fails_if_user_has_no_permission_t... method test_delete_endpoint_fails_if_task_does_not_belong_to_organization (line 733) | public function test_delete_endpoint_fails_if_task_does_not_belong_to_... method test_store_endpoint_allows_employee_to_create_task_in_public_project_when_employees_can_manage_tasks_is_enabled (line 755) | public function test_store_endpoint_allows_employee_to_create_task_in_... method test_store_endpoint_allows_employee_to_create_task_in_accessible_private_project_when_employees_can_manage_tasks_is_enabled (line 779) | public function test_store_endpoint_allows_employee_to_create_task_in_... method test_store_endpoint_fails_for_employee_creating_task_in_inaccessible_private_project_when_employees_can_manage_tasks_is_enabled (line 804) | public function test_store_endpoint_fails_for_employee_creating_task_i... method test_store_endpoint_fails_for_employee_when_employees_can_manage_tasks_is_disabled (line 827) | public function test_store_endpoint_fails_for_employee_when_employees_... method test_update_endpoint_allows_employee_to_update_task_in_public_project_when_employees_can_manage_tasks_is_enabled (line 849) | public function test_update_endpoint_allows_employee_to_update_task_in... method test_update_endpoint_allows_employee_to_update_task_in_accessible_private_project_when_employees_can_manage_tasks_is_enabled (line 872) | public function test_update_endpoint_allows_employee_to_update_task_in... method test_update_endpoint_fails_for_employee_updating_task_in_inaccessible_private_project_when_employees_can_manage_tasks_is_enabled (line 896) | public function test_update_endpoint_fails_for_employee_updating_task_... method test_update_endpoint_fails_for_employee_when_employees_can_manage_tasks_is_disabled (line 920) | public function test_update_endpoint_fails_for_employee_when_employees... method test_delete_endpoint_allows_employee_to_delete_task_in_public_project_when_employees_can_manage_tasks_is_enabled (line 944) | public function test_delete_endpoint_allows_employee_to_delete_task_in... method test_delete_endpoint_allows_employee_to_delete_task_in_accessible_private_project_when_employees_can_manage_tasks_is_enabled (line 964) | public function test_delete_endpoint_allows_employee_to_delete_task_in... method test_delete_endpoint_fails_for_employee_deleting_task_in_inaccessible_private_project_when_employees_can_manage_tasks_is_enabled (line 985) | public function test_delete_endpoint_fails_for_employee_deleting_task_... method test_delete_endpoint_fails_for_employee_when_employees_can_manage_tasks_is_disabled (line 1005) | public function test_delete_endpoint_fails_for_employee_when_employees... FILE: tests/Unit/Endpoint/Api/V1/TimeEntryEndpointTest.php class TimeEntryEndpointTest (line 36) | #[UsesClass(TimeEntryController::class)] method setUp (line 39) | protected function setUp(): void method test_index_endpoint_fails_if_user_has_no_permission_to_view_time_entries (line 45) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_fails_if_user_has_no_permission_to_view_time_entries_for_others_but_wants_all_entries (line 58) | public function test_index_endpoint_fails_if_user_has_no_permission_to... method test_index_endpoint_returns_time_entries_for_current_user (line 73) | public function test_index_endpoint_returns_time_entries_for_current_u... method test_index_endpoint_fails_if_user_filter_is_from_different_organization (line 93) | public function test_index_endpoint_fails_if_user_filter_is_from_diffe... method test_index_endpoint_returns_time_entries_for_other_user_in_organization (line 115) | public function test_index_endpoint_returns_time_entries_for_other_use... method test_index_endpoint_returns_time_entries_for_all_users_in_organization_default_sort_by_start_date_desc (line 134) | public function test_index_endpoint_returns_time_entries_for_all_users... method test_index_endpoint_returns_only_active_time_entries (line 163) | public function test_index_endpoint_returns_only_active_time_entries()... method test_index_endpoint_returns_only_non_active_time_entries (line 187) | public function test_index_endpoint_returns_only_non_active_time_entri... method test_index_endpoint_filter_only_full_dates_returns_time_entries_for_the_whole_day_case_less_time_entries_than_limit (line 211) | public function test_index_endpoint_filter_only_full_dates_returns_tim... method test_index_endpoint_filter_only_full_dates_returns_time_entries_for_the_whole_day_case_more_time_entries_than_limit (line 234) | public function test_index_endpoint_filter_only_full_dates_returns_tim... method test_index_endpoint_filter_only_full_dates_returns_time_entries_for_the_whole_day_case_more_time_entries_than_limit_with_a_timezone_edge_case (line 262) | public function test_index_endpoint_filter_only_full_dates_returns_tim... method test_index_endpoint_filter_only_full_dates_returns_time_entries_for_the_whole_day_case_more_time_entries_in_latest_day_than_limit (line 311) | public function test_index_endpoint_filter_only_full_dates_returns_tim... method test_index_endpoint_before_filter_returns_time_entries_before_date (line 348) | public function test_index_endpoint_before_filter_returns_time_entries... method test_index_endpoint_can_round_up (line 394) | public function test_index_endpoint_can_round_up(): void method test_index_endpoint_can_round_up_but_does_not_round_up_if_already_on_border (line 440) | public function test_index_endpoint_can_round_up_but_does_not_round_up... method test_index_endpoint_ignores_rounding_if_organization_has_no_premium_features (line 486) | public function test_index_endpoint_ignores_rounding_if_organization_h... method test_index_endpoint_can_round_down (line 532) | public function test_index_endpoint_can_round_down(): void method test_index_endpoint_can_round_nearest (line 578) | public function test_index_endpoint_can_round_nearest(): void method test_index_endpoint_after_filter_returns_time_entries_after_date (line 624) | public function test_index_endpoint_after_filter_returns_time_entries_... method test_index_endpoint_with_all_available_filters (line 664) | public function test_index_endpoint_with_all_available_filters(): void method test_index_endpoint_with_limit_offset_and_only_full_dates_deactivated (line 714) | public function test_index_endpoint_with_limit_offset_and_only_full_da... method test_index_export_endpoint_fails_if_user_has_no_permission_to_view_time_entries (line 751) | public function test_index_export_endpoint_fails_if_user_has_no_permis... method test_index_export_endpoint_fails_if_pdf_renderer_is_not_configured_but_a_user_want_a_pdf_report (line 769) | public function test_index_export_endpoint_fails_if_pdf_renderer_is_no... method test_index_export_endpoint_fails_if_user_wants_a_pdf_export_but_has_no_subscription (line 796) | public function test_index_export_endpoint_fails_if_user_wants_a_pdf_e... method test_index_export_endpoint_fails_if_user_has_only_access_to_own_time_entries_but_does_not_filter_for_this (line 822) | public function test_index_export_endpoint_fails_if_user_has_only_acce... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_csv (line 842) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_ods (line 866) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_xlxs (line 890) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_pdf (line 914) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_csv_as_employee_role_with_show_billable_rate (line 939) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_ods_as_employee_role_with_show_billable_rate (line 962) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_xlxs_as_employee_role_with_show_billable_rate (line 985) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_pdf_as_employee_role_with_show_billable_rate (line 1008) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_csv_as_employee_role_without_show_billable_rate (line 1032) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_ods_as_employee_role_without_show_billable_rate (line 1055) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_xlxs_as_employee_role_without_show_billable_rate (line 1078) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_index_export_endpoint_can_create_a_detailed_time_entry_report_in_format_pdf_as_employee_role_without_show_billable_rate (line 1101) | public function test_index_export_endpoint_can_create_a_detailed_time_... method test_aggregate_export_endpoints_fails_if_user_no_permission_to_view_time_entries (line 1125) | public function test_aggregate_export_endpoints_fails_if_user_no_permi... method test_aggregate_endpoint_fails_if_user_has_no_permission_to_view_time_entries (line 1146) | public function test_aggregate_endpoint_fails_if_user_has_no_permissio... method test_aggregate_export_endpoint_fails_if_user_wants_a_pdf_export_but_has_no_subscription (line 1161) | public function test_aggregate_export_endpoint_fails_if_user_wants_a_p... method test_aggregate_export_endpoint_fails_if_user_has_only_access_to_own_time_entries_but_does_not_filter_for_this (line 1190) | public function test_aggregate_export_endpoint_fails_if_user_has_only_... method test_aggregate_export_endpoints_can_create_a_csv_report (line 1213) | public function test_aggregate_export_endpoints_can_create_a_csv_repor... method test_aggregate_export_endpoints_can_create_a_csv_report_as_employee_role_with_show_billable_rate (line 1240) | public function test_aggregate_export_endpoints_can_create_a_csv_repor... method test_aggregate_export_endpoints_can_create_a_csv_report_as_employee_role_without_show_billable_rate (line 1266) | public function test_aggregate_export_endpoints_can_create_a_csv_repor... method test_aggregate_export_endpoints_can_create_a_xlsx_report (line 1292) | public function test_aggregate_export_endpoints_can_create_a_xlsx_repo... method test_aggregate_export_endpoints_can_create_a_xlsx_report_as_employee_role_with_show_billable_rate (line 1319) | public function test_aggregate_export_endpoints_can_create_a_xlsx_repo... method test_aggregate_export_endpoints_can_create_a_xlsx_report_as_employee_role_without_show_billable_rate (line 1345) | public function test_aggregate_export_endpoints_can_create_a_xlsx_repo... method test_aggregate_export_endpoints_can_create_a_ods_report (line 1371) | public function test_aggregate_export_endpoints_can_create_a_ods_repor... method test_aggregate_export_endpoints_can_create_a_ods_report_as_employee_role_with_show_billable_rate (line 1398) | public function test_aggregate_export_endpoints_can_create_a_ods_repor... method test_aggregate_export_endpoints_can_create_a_ods_report_as_employee_role_without_show_billable_rate (line 1424) | public function test_aggregate_export_endpoints_can_create_a_ods_repor... method test_aggregate_export_endpoint_fails_if_pdf_renderer_is_not_configured_but_a_user_want_a_pdf_report (line 1450) | public function test_aggregate_export_endpoint_fails_if_pdf_renderer_i... method test_aggregate_export_endpoints_can_create_a_pdf_report (line 1480) | public function test_aggregate_export_endpoints_can_create_a_pdf_repor... method test_aggregate_export_endpoints_can_create_a_pdf_report_as_employee_role_with_show_billable_rate (line 1508) | public function test_aggregate_export_endpoints_can_create_a_pdf_repor... method test_aggregate_export_endpoints_can_create_a_pdf_report_as_employee_role_without_show_billable_rate (line 1535) | public function test_aggregate_export_endpoints_can_create_a_pdf_repor... method test_index_export_endpoint_with_client_ids_filter_returns_filtered_entries (line 1562) | public function test_index_export_endpoint_with_client_ids_filter_retu... method test_index_export_endpoint_with_none_client_ids_filter_succeeds (line 1589) | public function test_index_export_endpoint_with_none_client_ids_filter... method test_index_export_endpoint_with_client_ids_of_other_organization_fails_validation (line 1614) | public function test_index_export_endpoint_with_client_ids_of_other_or... method test_aggregate_endpoint_fails_if_user_has_only_access_to_own_time_entries_but_does_not_filter_for_this (line 1640) | public function test_aggregate_endpoint_fails_if_user_has_only_access_... method test_aggregate_endpoint_fails_if_request_has_sub_group_but_no_group (line 1659) | public function test_aggregate_endpoint_fails_if_request_has_sub_group... method test_aggregate_endpoint_works_for_user_with_only_access_to_own_time_entries (line 1678) | public function test_aggregate_endpoint_works_for_user_with_only_acces... method test_aggregate_endpoint_groups_by_two_groups (line 1720) | public function test_aggregate_endpoint_groups_by_two_groups(): void method test_aggregate_endpoint_groups_by_two_groups_with_fill_gaps_argument (line 1799) | public function test_aggregate_endpoint_groups_by_two_groups_with_fill... method test_aggregate_endpoint_groups_by_one_group (line 1894) | public function test_aggregate_endpoint_groups_by_one_group(): void method test_aggregate_endpoint_groups_by_one_group_with_fill_gaps_argument (line 1941) | public function test_aggregate_endpoint_groups_by_one_group_with_fill_... method test_aggregate_endpoint_with_no_group (line 2000) | public function test_aggregate_endpoint_with_no_group(): void method test_store_endpoint_fails_if_user_has_no_permission_to_create_time_entries (line 2023) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_fails_if_user_already_has_active_time_entry_and_tries_to_start_new_one (line 2045) | public function test_store_endpoint_fails_if_user_already_has_active_t... method test_store_endpoint_validation_fails_if_task_id_does_not_belong_to_project_id (line 2073) | public function test_store_endpoint_validation_fails_if_task_id_does_n... method test_store_endpoint_validation_fails_if_project_id_is_missing_but_request_has_task_id (line 2103) | public function test_store_endpoint_validation_fails_if_project_id_is_... method test_store_endpoint_creates_new_time_entry_for_current_user (line 2133) | public function test_store_endpoint_creates_new_time_entry_for_current... method test_store_endpoint_fails_gracefully_if_non_uuid_text_is_in_uuid_validated_field_in_body (line 2164) | public function test_store_endpoint_fails_gracefully_if_non_uuid_text_... method test_store_endpoint_fails_if_employee_tries_to_create_time_entry_for_private_project_without_access (line 2186) | public function test_store_endpoint_fails_if_employee_tries_to_create_... method test_store_endpoints_sets_billable_rate (line 2221) | public function test_store_endpoints_sets_billable_rate(): void method test_store_endpoint_creates_new_time_entry_with_minimal_fields (line 2252) | public function test_store_endpoint_creates_new_time_entry_with_minima... method test_store_endpoint_can_create_new_time_entry_with_project_and_automatically_set_client (line 2278) | public function test_store_endpoint_can_create_new_time_entry_with_pro... method test_store_endpoint_fails_if_user_has_no_permission_to_create_time_entries_for_others (line 2309) | public function test_store_endpoint_fails_if_user_has_no_permission_to... method test_store_endpoint_creates_new_time_entry_for_other_user_in_organization (line 2337) | public function test_store_endpoint_creates_new_time_entry_for_other_u... method test_create_endpoint_recalculates_project_and_task_spent_time_if_time_entry_has_project_and_task (line 2369) | public function test_create_endpoint_recalculates_project_and_task_spe... method test_update_endpoint_fails_if_employee_tries_to_update_time_entry_to_private_project_without_access (line 2409) | public function test_update_endpoint_fails_if_employee_tries_to_update... method test_update_endpoint_fails_if_user_has_no_permission_to_update_own_time_entries (line 2442) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_fails_if_user_is_not_part_of_time_entry_organization (line 2465) | public function test_update_endpoint_fails_if_user_is_not_part_of_time... method test_update_endpoint_fails_if_user_has_no_permission_to_update_time_entries_for_other_users_in_organization (line 2493) | public function test_update_endpoint_fails_if_user_has_no_permission_t... method test_update_endpoint_validation_fails_if_task_id_does_not_belong_to_project_id (line 2519) | public function test_update_endpoint_validation_fails_if_task_id_does_... method test_update_endpoint_validation_fails_if_project_id_is_missing_but_request_has_task_id (line 2549) | public function test_update_endpoint_validation_fails_if_project_id_is... method test_update_endpoint_updates_time_entry_for_current_user (line 2579) | public function test_update_endpoint_updates_time_entry_for_current_us... method test_update_endpoints_sets_billable_rate (line 2608) | public function test_update_endpoints_sets_billable_rate(): void method test_update_endpoint_updates_time_entry_for_current_user_but_does_not_send_member_id (line 2640) | public function test_update_endpoint_updates_time_entry_for_current_us... method test_update_endpoint_fails_if_user_tries_to_reactivate_a_time_entry (line 2668) | public function test_update_endpoint_fails_if_user_tries_to_reactivate... method test_update_endpoint_updates_time_entry_of_other_user_in_organization (line 2695) | public function test_update_endpoint_updates_time_entry_of_other_user_... method test_update_endpoint_can_update_project_and_automatically_set_client (line 2726) | public function test_update_endpoint_can_update_project_and_automatica... method test_update_endpoint_can_removed_project_from_time_entry_and_automatically_remove_client (line 2756) | public function test_update_endpoint_can_removed_project_from_time_ent... method test_update_endpoint_recalculates_project_and_task_spend_time_after_updating_time_entry_settings_a_project_and_a_task (line 2786) | public function test_update_endpoint_recalculates_project_and_task_spe... method test_update_endpoint_recalculates_project_and_task_spend_time_after_updating_time_entry_settings_a_new_project_and_a_new_task (line 2821) | public function test_update_endpoint_recalculates_project_and_task_spe... method test_destroy_endpoint_fails_if_user_tries_to_delete_time_entry_in_organization_that_they_does_belong_to (line 2864) | public function test_destroy_endpoint_fails_if_user_tries_to_delete_ti... method test_destroy_endpoint_fails_if_user_tries_to_delete_non_existing_time_entry (line 2883) | public function test_destroy_endpoint_fails_if_user_tries_to_delete_no... method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_own_time_entries (line 2898) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_fails_if_user_has_no_permission_to_delete_time_entries_for_other_users_in_organization (line 2912) | public function test_destroy_endpoint_fails_if_user_has_no_permission_... method test_destroy_endpoint_deletes_own_time_entry (line 2930) | public function test_destroy_endpoint_deletes_own_time_entry(): void method test_destroy_endpoint_deletes_time_entry_of_other_user_in_organization (line 2950) | public function test_destroy_endpoint_deletes_time_entry_of_other_user... method test_destroy_multiple_endpoint_fails_if_user_has_no_permission_to_delete_own_time_entries_or_all_time_entries (line 2972) | public function test_destroy_multiple_endpoint_fails_if_user_has_no_pe... method test_destroy_multiple_endpoint_fails_if_ids_contains_non_uuid_id (line 2989) | public function test_destroy_multiple_endpoint_fails_if_ids_contains_n... method test_destroy_multiple_endpoint_own_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_own_time_entries_permission (line 3012) | public function test_destroy_multiple_endpoint_own_time_entries_and_fa... method test_destroy_multiple_deletes_all_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_all_time_entries_permission (line 3062) | public function test_destroy_multiple_deletes_all_time_entries_and_fai... method test_destroy_multiple_recalculates_project_and_task_spend_time_after_deleting_time_entries (line 3112) | public function test_destroy_multiple_recalculates_project_and_task_sp... method test_destroy_endpoint_recalculates_project_and_task_spend_time_after_deleting_time_entry (line 3163) | public function test_destroy_endpoint_recalculates_project_and_task_sp... method test_destroy_endpoint_does_not_recalculate_project_and_task_spend_time_after_deleting_time_entry_if_time_entry_had_no_project_and_task (line 3199) | public function test_destroy_endpoint_does_not_recalculate_project_and... method test_update_multiple_endpoint_fails_if_user_has_no_permission_to_update_own_time_entries_or_all_time_entries (line 3225) | public function test_update_multiple_endpoint_fails_if_user_has_no_per... method test_update_multiple_endpoint_fails_if_employee_tries_to_update_time_entries_to_private_project_without_access (line 3246) | public function test_update_multiple_endpoint_fails_if_employee_tries_... method test_update_multiple_remove_task_from_time_entries_only_if_project_is_set_to_a_new_value_without_setting_a_new_task (line 3287) | public function test_update_multiple_remove_task_from_time_entries_onl... method test_update_multiple_updates_own_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_own_time_entries_permission (line 3335) | public function test_update_multiple_updates_own_time_entries_and_fail... method test_update_multiple_updates_own_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_own_time_entries_permission_and_full_changeset (line 3393) | public function test_update_multiple_updates_own_time_entries_and_fail... method test_update_multiple_updates_sets_description_to_empty_if_the_client_sends_null (line 3473) | public function test_update_multiple_updates_sets_description_to_empty... method test_update_multiple_updates_all_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_all_time_entries_permission (line 3519) | public function test_update_multiple_updates_all_time_entries_and_fail... method test_update_multiple_updates_all_time_entries_and_fails_for_time_entries_of_other_users_and_and_other_organizations_with_all_time_entries_permission_and_full_changeset (line 3576) | public function test_update_multiple_updates_all_time_entries_and_fail... method test_store_endpoint_blocks_overlapping_entries_when_start_overlaps (line 3655) | public function test_store_endpoint_blocks_overlapping_entries_when_st... method test_store_endpoint_blocks_overlapping_entries_when_end_overlaps (line 3690) | public function test_store_endpoint_blocks_overlapping_entries_when_en... method test_store_endpoint_blocks_overlapping_entries_when_new_entry_is_within_existing (line 3725) | public function test_store_endpoint_blocks_overlapping_entries_when_ne... method test_store_endpoint_blocks_overlapping_entries_when_new_entry_surrounds_existing (line 3760) | public function test_store_endpoint_blocks_overlapping_entries_when_ne... method test_store_endpoint_blocks_starting_active_entry_when_it_overlaps_with_existing (line 3795) | public function test_store_endpoint_blocks_starting_active_entry_when_... method test_store_endpoint_allows_future_time_entries_even_with_running_now (line 3830) | public function test_store_endpoint_allows_future_time_entries_even_wi... method test_update_endpoint_blocks_overlap_and_excludes_current_entry (line 3860) | public function test_update_endpoint_blocks_overlap_and_excludes_curre... method test_update_multiple_refreshes_billable_rate_on_updates_time_entries (line 3897) | public function test_update_multiple_refreshes_billable_rate_on_update... method test_update_multiple_ignores_other_fields_in_changes (line 3946) | public function test_update_multiple_ignores_other_fields_in_changes()... method test_update_multiple_can_update_project_and_sets_client_automatically (line 3982) | public function test_update_multiple_can_update_project_and_sets_clien... method test_update_multiple_can_remove_project_from_time_entries_and_sets_client_automatically (line 4033) | public function test_update_multiple_can_remove_project_from_time_entr... method test_update_multiple_updates_own_time_entries_fails_if_member_id_is_not_your_own_and_you_dont_have_update_all_permission (line 4084) | public function test_update_multiple_updates_own_time_entries_fails_if... method test_index_endpoint_with_none_project_filter_returns_entries_without_project (line 4116) | public function test_index_endpoint_with_none_project_filter_returns_e... method test_index_endpoint_with_none_and_id_project_filter_returns_both (line 4153) | public function test_index_endpoint_with_none_and_id_project_filter_re... method test_index_endpoint_with_none_task_filter_returns_entries_without_task (line 4201) | public function test_index_endpoint_with_none_task_filter_returns_entr... method test_index_endpoint_with_none_client_filter_returns_entries_without_client (line 4240) | public function test_index_endpoint_with_none_client_filter_returns_en... method test_index_endpoint_with_none_tag_filter_returns_entries_without_tags (line 4277) | public function test_index_endpoint_with_none_tag_filter_returns_entri... FILE: tests/Unit/Endpoint/Api/V1/UserEndpointTest.php class UserEndpointTest (line 9) | class UserEndpointTest extends ApiEndpointTestAbstract method test_me_fails_when_not_authenticated (line 11) | public function test_me_fails_when_not_authenticated(): void method test_me_returns_information_about_the_current_user (line 21) | public function test_me_returns_information_about_the_current_user(): ... FILE: tests/Unit/Endpoint/Api/V1/UserMembershipEndpointTest.php class UserMembershipEndpointTest (line 11) | class UserMembershipEndpointTest extends ApiEndpointTestAbstract method test_my_members_fails_when_not_authenticated (line 13) | public function test_my_members_fails_when_not_authenticated(): void method test_my_members_returns_information_about_the_organization_membership_of_the_current_user (line 23) | public function test_my_members_returns_information_about_the_organiza... FILE: tests/Unit/Endpoint/Api/V1/UserTimeEntryEndpointTest.php class UserTimeEntryEndpointTest (line 15) | #[UsesClass(UserTimeEntryController::class)] method test_my_active_endpoint_returns_unauthorized_if_user_is_not_logged_in (line 18) | public function test_my_active_endpoint_returns_unauthorized_if_user_i... method test_my_active_endpoint_returns_current_time_entry_of_logged_in_user (line 30) | public function test_my_active_endpoint_returns_current_time_entry_of_... method test_my_active_endpoint_logs_a_warning_if_user_has_multiple_active_time_entries_and_return_the_latest_one (line 46) | public function test_my_active_endpoint_logs_a_warning_if_user_has_mul... method test_my_active_endpoint_returns_not_found_if_user_has_no_active_time_entry (line 66) | public function test_my_active_endpoint_returns_not_found_if_user_has_... FILE: tests/Unit/Endpoint/Web/DashboardEndpointTest.php class DashboardEndpointTest (line 14) | #[CoversClass(DashboardController::class)] method test_showing_dashboard_succeeds_for_empty_user (line 17) | public function test_showing_dashboard_succeeds_for_empty_user(): void method test_showing_dashboard_succeeds_for_user_with_employee_role (line 30) | public function test_showing_dashboard_succeeds_for_user_with_employee... FILE: tests/Unit/Endpoint/Web/EndpointTestAbstract.php class EndpointTestAbstract (line 9) | abstract class EndpointTestAbstract extends TestCaseWithDatabase {} FILE: tests/Unit/Endpoint/Web/HealthCheckEndpointTest.php class HealthCheckEndpointTest (line 11) | #[CoversClass(HealthCheckController::class)] method test_up_endpoint_returns_ok (line 14) | public function test_up_endpoint_returns_ok(): void method test_debug_endpoint_returns_ok (line 32) | public function test_debug_endpoint_returns_ok(): void method test_debug_endpoint_returns_more_information_if_debug_mode_is_enabled (line 57) | public function test_debug_endpoint_returns_more_information_if_debug_... FILE: tests/Unit/Endpoint/Web/HomeEndpointTest.php class HomeEndpointTest (line 13) | #[CoversClass(HomeController::class)] method test_index_redirects_to_dashboard_if_user_is_logged_in (line 18) | public function test_index_redirects_to_dashboard_if_user_is_logged_in... method test_index_redirects_to_login_if_user_is_not_logged_in (line 31) | public function test_index_redirects_to_login_if_user_is_not_logged_in... method test_login_redirects_to_dashboard_if_user_is_logged_in (line 42) | public function test_login_redirects_to_dashboard_if_user_is_logged_in... FILE: tests/Unit/Filament/FilamentTestCase.php class FilamentTestCase (line 10) | abstract class FilamentTestCase extends TestCaseWithDatabase method setUp (line 12) | protected function setUp(): void FILE: tests/Unit/Filament/Resources/AuditResourceTest.php class AuditResourceTest (line 17) | #[UsesClass(AuditResource::class)] method setUp (line 20) | protected function setUp(): void method test_can_list_audits (line 31) | public function test_can_list_audits(): void method test_can_see_view_page_of_audit (line 47) | public function test_can_see_view_page_of_audit(): void FILE: tests/Unit/Filament/Resources/ClientResourceTest.php class ClientResourceTest (line 15) | #[UsesClass(ClientResource::class)] method setUp (line 18) | protected function setUp(): void method test_can_list_clients (line 29) | public function test_can_list_clients(): void method test_can_see_edit_page_of_client (line 42) | public function test_can_see_edit_page_of_client(): void FILE: tests/Unit/Filament/Resources/FailedJobResourceTest.php class FailedJobResourceTest (line 16) | #[UsesClass(FailedJobResource::class)] method setUp (line 19) | protected function setUp(): void method test_can_list_failed_jobs (line 30) | public function test_can_list_failed_jobs(): void method test_can_see_view_page_of_failed_job (line 43) | public function test_can_see_view_page_of_failed_job(): void FILE: tests/Unit/Filament/Resources/OrganizationInvitationResourceTest.php class OrganizationInvitationResourceTest (line 17) | #[UsesClass(OrganizationInvitationResource::class)] method setUp (line 20) | protected function setUp(): void method test_can_list_organization_invitations (line 31) | public function test_can_list_organization_invitations(): void method test_can_see_edit_page_of_organization_invitation (line 46) | public function test_can_see_edit_page_of_organization_invitation(): void method test_can_delete_a_organization_invitation (line 61) | public function test_can_delete_a_organization_invitation(): void FILE: tests/Unit/Filament/Resources/OrganizationResourceTest.php class OrganizationResourceTest (line 18) | #[UsesClass(OrganizationResource::class)] method setUp (line 21) | protected function setUp(): void method test_can_list_organizations (line 32) | public function test_can_list_organizations(): void method test_can_see_edit_page_of_organization (line 48) | public function test_can_see_edit_page_of_organization(): void method test_can_delete_a_organization (line 60) | public function test_can_delete_a_organization(): void method test_can_list_related_users (line 79) | public function test_can_list_related_users(): void method test_can_list_related_invitations (line 99) | public function test_can_list_related_invitations(): void FILE: tests/Unit/Filament/Resources/ProjectResourceTest.php class ProjectResourceTest (line 15) | #[UsesClass(ProjectResource::class)] method setUp (line 18) | protected function setUp(): void method test_can_list_projects (line 29) | public function test_can_list_projects(): void method test_can_see_edit_page_of_project (line 42) | public function test_can_see_edit_page_of_project(): void FILE: tests/Unit/Filament/Resources/ReportResourceTest.php class ReportResourceTest (line 15) | #[UsesClass(ReportResource::class)] method setUp (line 18) | protected function setUp(): void method test_can_list_reports (line 29) | public function test_can_list_reports(): void method test_can_see_edit_page_of_report (line 42) | public function test_can_see_edit_page_of_report(): void FILE: tests/Unit/Filament/Resources/TagResourceTest.php class TagResourceTest (line 15) | #[UsesClass(TagResource::class)] method setUp (line 18) | protected function setUp(): void method test_can_list_tags (line 29) | public function test_can_list_tags(): void method test_can_see_edit_page_of_tag (line 42) | public function test_can_see_edit_page_of_tag(): void FILE: tests/Unit/Filament/Resources/TaskResourceTest.php class TaskResourceTest (line 15) | #[UsesClass(TaskResource::class)] method setUp (line 18) | protected function setUp(): void method test_can_list_tasks (line 29) | public function test_can_list_tasks(): void method test_can_see_edit_page_of_task (line 42) | public function test_can_see_edit_page_of_task(): void FILE: tests/Unit/Filament/Resources/TimeEntryResourceTest.php class TimeEntryResourceTest (line 17) | #[UsesClass(TimeEntryResource::class)] method setUp (line 20) | protected function setUp(): void method test_can_list_time_entry (line 31) | public function test_can_list_time_entry(): void method test_can_see_edit_page_of_time_entry (line 44) | public function test_can_see_edit_page_of_time_entry(): void method test_can_see_create_page_of_time_entry (line 56) | public function test_can_see_create_page_of_time_entry(): void method test_can_create_time_entry (line 65) | public function test_can_create_time_entry(): void method test_can_create_time_entry_and_derives_user_and_organization_from_member (line 97) | public function test_can_create_time_entry_and_derives_user_and_organi... method test_can_update_time_entry (line 131) | public function test_can_update_time_entry(): void method test_update_time_entry_derives_user_and_organization_from_new_member (line 163) | public function test_update_time_entry_derives_user_and_organization_f... FILE: tests/Unit/Filament/Resources/TokenResourceTest.php class TokenResourceTest (line 16) | #[UsesClass(TokenResource::class)] method setUp (line 19) | protected function setUp(): void method test_can_list_tokens (line 30) | public function test_can_list_tokens(): void method test_list_tokens_with_filter_is_personal_access_client_true (line 44) | public function test_list_tokens_with_filter_is_personal_access_client... method test_list_tokens_with_filter_is_personal_access_client_false (line 63) | public function test_list_tokens_with_filter_is_personal_access_client... method test_can_see_view_page_of_token (line 82) | public function test_can_see_view_page_of_token(): void FILE: tests/Unit/Filament/Resources/UserResourceTest.php class UserResourceTest (line 20) | #[UsesClass(TimeEntryResource::class)] method setUp (line 23) | protected function setUp(): void method test_can_list_users (line 34) | public function test_can_list_users(): void method test_can_see_edit_page_of_user (line 47) | public function test_can_see_edit_page_of_user(): void method test_can_see_view_page_of_user (line 59) | public function test_can_see_view_page_of_user(): void method test_can_see_create_page_of_user (line 71) | public function test_can_see_create_page_of_user(): void method test_can_create_user (line 80) | public function test_can_create_user(): void method test_can_delete_a_user (line 112) | public function test_can_delete_a_user(): void method test_delete_user_shows_error_notification_on_failure (line 131) | public function test_delete_user_shows_error_notification_on_failure()... method test_can_list_related_organizations (line 150) | public function test_can_list_related_organizations(): void method test_can_list_related_owned_organizations (line 169) | public function test_can_list_related_owned_organizations(): void FILE: tests/Unit/Filament/Widgets/ServerOverviewWidgetTest.php class ServerOverviewWidgetTest (line 15) | #[UsesClass(ServerOverview::class)] method setUp (line 18) | protected function setUp(): void method test_shows_version_and_build_it_no_information_about_the_current_version_exists (line 29) | public function test_shows_version_and_build_it_no_information_about_t... method test_show_version_is_current_when_the_latest_version_is_the_same_as_the_current_version (line 47) | public function test_show_version_is_current_when_the_latest_version_i... method test_shows_update_available (line 65) | public function test_shows_update_available(): void FILE: tests/Unit/Jobs/RecalculateSpentTimeForProjectTest.php class RecalculateSpentTimeForProjectTest (line 13) | class RecalculateSpentTimeForProjectTest extends TestCaseWithDatabase method test_recalculates_spent_time_for_project (line 15) | public function test_recalculates_spent_time_for_project(): void method test_does_not_save_project_if_value_is_already_correct (line 37) | public function test_does_not_save_project_if_value_is_already_correct... FILE: tests/Unit/Jobs/RecalculateSpentTimeForTaskTest.php class RecalculateSpentTimeForTaskTest (line 13) | class RecalculateSpentTimeForTaskTest extends TestCaseWithDatabase method test_recalculates_spent_time_for_task (line 15) | public function test_recalculates_spent_time_for_task(): void method test_does_not_save_task_if_value_is_already_correct (line 37) | public function test_does_not_save_task_if_value_is_already_correct():... FILE: tests/Unit/Jobs/Test/TestJobTest.php class TestJobTest (line 13) | class TestJobTest extends TestCaseWithDatabase method test_logs_debug_message (line 15) | public function test_logs_debug_message(): void method test_can_fail_if_parameter_fail_is_true (line 33) | public function test_can_fail_if_parameter_fail_is_true(): void FILE: tests/Unit/Mail/AuthApiTokenExpirationReminderMailTest.php class AuthApiTokenExpirationReminderMailTest (line 14) | #[CoversClass(AuthApiTokenExpirationReminderMail::class)] method test_mail_renders_content_correctly (line 17) | public function test_mail_renders_content_correctly(): void FILE: tests/Unit/Mail/AuthApiTokenExpiredMailTest.php class AuthApiTokenExpiredMailTest (line 14) | #[CoversClass(AuthApiTokenExpiredMail::class)] method test_mail_renders_content_correctly (line 17) | public function test_mail_renders_content_correctly(): void FILE: tests/Unit/Mail/OrganizationInvitationMailTest.php class OrganizationInvitationMailTest (line 13) | #[CoversClass(OrganizationInvitationMail::class)] method test_mail_renders_content_correctly (line 16) | public function test_mail_renders_content_correctly(): void FILE: tests/Unit/Mail/TimeEntryStillRunningMailTest.php class TimeEntryStillRunningMailTest (line 12) | #[CoversClass(TimeEntryStillRunningMail::class)] method test_mail_renders_content_correctly (line 15) | public function test_mail_renders_content_correctly(): void FILE: tests/Unit/Middleware/CheckOrganizationBlockedMiddlewareTest.php class CheckOrganizationBlockedMiddlewareTest (line 18) | #[CoversClass(CheckOrganizationBlocked::class)] method createTestRoute (line 21) | private function createTestRoute(): void method createTestRouteNoModelBinding (line 29) | private function createTestRouteNoModelBinding(): string method test_request_fails_if_organization_is_blocked_by_the_billing_system (line 38) | public function test_request_fails_if_organization_is_blocked_by_the_b... method test_request_fails_if_organization_is_not_found (line 56) | public function test_request_fails_if_organization_is_not_found(): void method test_request_fails_on_route_without_organization_model_binding (line 73) | public function test_request_fails_on_route_without_organization_model... method test_request_succeeds_if_organization_is_not_blocked_by_the_billing_system (line 90) | public function test_request_succeeds_if_organization_is_not_blocked_b... FILE: tests/Unit/Middleware/EnsureEmailIsVerifiedMiddlewareTest.php class EnsureEmailIsVerifiedMiddlewareTest (line 12) | #[CoversClass(EnsureEmailIsVerified::class)] method createTestRoute (line 15) | private function createTestRoute(): string method test_guests_are_redirected_to_verification_notice_route (line 22) | public function test_guests_are_redirected_to_verification_notice_rout... method test_users_with_unverified_email_are_redirected_to_verification_notice_route (line 34) | public function test_users_with_unverified_email_are_redirected_to_ver... method test_users_with_unverified_email_get_error_if_the_request_is_json (line 48) | public function test_users_with_unverified_email_get_error_if_the_requ... method test_users_with_verified_email_can_access_route (line 62) | public function test_users_with_verified_email_can_access_route(): void method test_users_with_unverified_email_can_access_route_in_local_environment (line 76) | public function test_users_with_unverified_email_can_access_route_in_l... FILE: tests/Unit/Middleware/ForceHttpsMiddlewareTest.php class ForceHttpsMiddlewareTest (line 12) | #[CoversClass(ForceHttps::class)] method createTestRoute (line 15) | private function createTestRoute(): string method test_if_config_app_force_https_is_true_then_the_request_will_be_modified_to_make_the_app_think_it_was_a_https_request (line 26) | public function test_if_config_app_force_https_is_true_then_the_reques... method test_if_config_app_force_https_is_true_then_the_request_will_be_modified_to_make_the_app_think_it_was_a_https_request_even_if_a_load_balancer_says_it_was_a_http_request (line 40) | public function test_if_config_app_force_https_is_true_then_the_reques... method test_if_config_app_force_https_is_false_then_the_request_will_not_be_modified_to_make_the_app_think_it_was_a_https_request (line 54) | public function test_if_config_app_force_https_is_false_then_the_reque... method test_if_config_app_force_https_is_false_then_the_request_will_not_be_modified_but_the_request_can_still_be_https (line 68) | public function test_if_config_app_force_https_is_false_then_the_reque... FILE: tests/Unit/Middleware/HandleInertiaRequestsMiddlewareTest.php class HandleInertiaRequestsMiddlewareTest (line 18) | #[CoversClass(HandleInertiaRequests::class)] method createTestRoute (line 21) | private function createTestRoute(): string method test_adds_billing_information_to_shared_data_of_inertia_requests (line 28) | public function test_adds_billing_information_to_shared_data_of_inerti... method test_adds_billing_information_to_shared_data_of_inertia_requests_with_active_trial (line 53) | public function test_adds_billing_information_to_shared_data_of_inerti... FILE: tests/Unit/Middleware/MiddlewareTestAbstract.php class MiddlewareTestAbstract (line 10) | abstract class MiddlewareTestAbstract extends TestCaseWithDatabase FILE: tests/Unit/Model/ClientModelTest.php class ClientModelTest (line 12) | #[CoversClass(Client::class)] method test_it_belongs_to_a_organization (line 15) | public function test_it_belongs_to_a_organization(): void method test_it_has_many_projects (line 30) | public function test_it_has_many_projects(): void method test_accessor_is_archived_is_true_if_archived_at_is_not_null (line 48) | public function test_accessor_is_archived_is_true_if_archived_at_is_no... method test_accessor_is_archived_is_false_if_archived_at_is_null (line 61) | public function test_accessor_is_archived_is_false_if_archived_at_is_n... FILE: tests/Unit/Model/MemberModelTest.php class MemberModelTest (line 14) | #[CoversClass(Member::class)] method test_it_belongs_to_a_user (line 17) | public function test_it_belongs_to_a_user(): void method test_it_belongs_to_a_organization (line 32) | public function test_it_belongs_to_a_organization(): void method test_it_has_many_project_members (line 47) | public function test_it_has_many_project_members(): void FILE: tests/Unit/Model/ModelTestAbstract.php class ModelTestAbstract (line 10) | abstract class ModelTestAbstract extends TestCase FILE: tests/Unit/Model/OrganizationModelTest.php class OrganizationModelTest (line 11) | #[CoversClass(Organization::class)] method test_it_has_many_members (line 14) | public function test_it_has_many_members(): void FILE: tests/Unit/Model/Passport/TokenModelTest.php class TokenModelTest (line 13) | #[CoversClass(Token::class)] method test_it_belongs_to_a_client (line 16) | public function test_it_belongs_to_a_client(): void method test_it_belongs_to_a_user (line 31) | public function test_it_belongs_to_a_user(): void method test_scope_is_api_tokens_only_returns_api_tokens_with_no_parameters (line 47) | public function test_scope_is_api_tokens_only_returns_api_tokens_with_... method test_scope_is_api_tokens_only_returns_api_tokens_with_true (line 65) | public function test_scope_is_api_tokens_only_returns_api_tokens_with_... method test_scope_is_api_tokens_only_returns_api_tokens_with_false (line 83) | public function test_scope_is_api_tokens_only_returns_api_tokens_with_... FILE: tests/Unit/Model/ProjectMemberModelTest.php class ProjectMemberModelTest (line 13) | #[CoversClass(ProjectMember::class)] method test_it_belongs_to_a_project (line 16) | public function test_it_belongs_to_a_project(): void method test_it_belongs_to_a_member (line 32) | public function test_it_belongs_to_a_member(): void method test_scope_where_belongs_to_organization_filters_project_members_to_only_retrieve_project_members_that_belong_to_a_project_of_the_organization (line 47) | public function test_scope_where_belongs_to_organization_filters_proje... FILE: tests/Unit/Model/ProjectModelTest.php class ProjectModelTest (line 17) | #[CoversClass(Project::class)] method test_it_belongs_to_a_organization (line 20) | public function test_it_belongs_to_a_organization(): void method test_it_can_belong_to_a_client (line 35) | public function test_it_can_belong_to_a_client(): void method test_it_can_belong_to_no_client (line 50) | public function test_it_can_belong_to_no_client(): void method test_it_has_many_tasks (line 63) | public function test_it_has_many_tasks(): void method test_it_has_many_members (line 79) | public function test_it_has_many_members(): void method test_scope_visible_by_user_filters_so_that_only_public_projects_or_projects_where_the_user_is_member_are_shown (line 95) | public function test_scope_visible_by_user_filters_so_that_only_public... method test_computed_spent_time_returns_the_sum_of_all_time_entries_excl_running_timers (line 120) | public function test_computed_spent_time_returns_the_sum_of_all_time_e... method test_computed_spent_time_returns_already_computed_value_if_present (line 139) | public function test_computed_spent_time_returns_already_computed_valu... method test_accessor_is_archived_is_true_if_archived_at_is_not_null (line 161) | public function test_accessor_is_archived_is_true_if_archived_at_is_no... method test_accessor_is_archived_is_false_if_archived_at_is_null (line 174) | public function test_accessor_is_archived_is_false_if_archived_at_is_n... method test_project_can_store_big_amounts_of_spent_time (line 187) | public function test_project_can_store_big_amounts_of_spent_time(): void FILE: tests/Unit/Model/ReportModelTest.php class ReportModelTest (line 12) | #[CoversClass(Report::class)] method test_it_belongs_to_a_organization (line 15) | public function test_it_belongs_to_a_organization(): void method test_shareable_link_is_null_when_report_is_private_but_share_secret_exists (line 30) | public function test_shareable_link_is_null_when_report_is_private_but... method test_shareable_link_is_null_when_report_is_public_but_share_secret_is_null (line 44) | public function test_shareable_link_is_null_when_report_is_public_but_... method test_shareable_link_is_null_when_report_is_public (line 58) | public function test_shareable_link_is_null_when_report_is_public(): void method test_shareable_link_is_url_to_web_endpoint_when_report_is_public (line 70) | public function test_shareable_link_is_url_to_web_endpoint_when_report... FILE: tests/Unit/Model/TagModelTest.php class TagModelTest (line 12) | #[CoversClass(Tag::class)] method test_it_belongs_to_a_organization (line 15) | public function test_it_belongs_to_a_organization(): void method test_it_has_many_time_entries_via_json_field (line 30) | public function test_it_has_many_time_entries_via_json_field(): void FILE: tests/Unit/Model/TaskModelTest.php class TaskModelTest (line 15) | #[CoversClass(Task::class)] method test_it_belongs_to_a_organization (line 18) | public function test_it_belongs_to_a_organization(): void method test_it_belongs_to_a_project (line 33) | public function test_it_belongs_to_a_project(): void method test_it_has_many_time_entries (line 48) | public function test_it_has_many_time_entries(): void method test_scope_visible_by_user_filters_so_that_only_tasks_of_public_projects_or_projects_where_the_user_is_member_are_shown (line 64) | public function test_scope_visible_by_user_filters_so_that_only_tasks_... method test_accessor_is_done_is_true_if_done_at_is_not_null (line 92) | public function test_accessor_is_done_is_true_if_done_at_is_not_null()... method test_accessor_is_done_is_false_if_done_at_is_null (line 104) | public function test_accessor_is_done_is_false_if_done_at_is_null(): void method test_task_can_store_big_amounts_of_spent_time (line 116) | public function test_task_can_store_big_amounts_of_spent_time(): void FILE: tests/Unit/Model/TimeEntryModelTest.php class TimeEntryModelTest (line 16) | #[CoversClass(TimeEntry::class)] method test_it_belongs_to_a_user (line 19) | public function test_it_belongs_to_a_user(): void method test_it_belongs_to_a_organization (line 34) | public function test_it_belongs_to_a_organization(): void method test_it_can_belong_to_a_project (line 49) | public function test_it_can_belong_to_a_project(): void method test_it_can_belong_to_no_project (line 64) | public function test_it_can_belong_to_no_project(): void method test_it_can_belong_to_a_task (line 77) | public function test_it_can_belong_to_a_task(): void method test_it_can_belong_to_no_task (line 92) | public function test_it_can_belong_to_no_task(): void method test_eloquent_datetime_columns_remove_timezone_information_during_save (line 105) | public function test_eloquent_datetime_columns_remove_timezone_informa... method test_scope_has_tag_filter_by_tag (line 124) | public function test_scope_has_tag_filter_by_tag(): void method test_computed_client_id_returns_null_when_no_project_is_assigned (line 150) | public function test_computed_client_id_returns_null_when_no_project_i... method test_computed_client_id_returns_project_client_id (line 165) | public function test_computed_client_id_returns_project_client_id(): void method test_has_many_tags_via_json_relation (line 181) | public function test_has_many_tags_via_json_relation(): void method test_has_many_tags_via_json_relation_eager_loaded (line 200) | public function test_has_many_tags_via_json_relation_eager_loaded(): void FILE: tests/Unit/Model/UserModelTest.php class UserModelTest (line 21) | #[CoversClass(User::class)] method test_normal_user_can_not_access_admin_panel (line 24) | public function test_normal_user_can_not_access_admin_panel(): void method test_user_in_super_admin_config_can_access_admin_panel (line 39) | public function test_user_in_super_admin_config_can_access_admin_panel... method test_scope_belongs_to_organization_returns_only_users_of_organization_including_owners (line 56) | public function test_scope_belongs_to_organization_returns_only_users_... method test_it_has_many_time_entries (line 83) | public function test_it_has_many_time_entries(): void method test_it_has_many_project_members (line 102) | public function test_it_has_many_project_members(): void method test_scope_active_returns_only_non_placeholder_users (line 125) | public function test_scope_active_returns_only_non_placeholder_users()... method test_it_has_many_access_tokens (line 143) | public function test_it_has_many_access_tokens(): void method test_it_has_many_auth_codes (line 173) | public function test_it_has_many_auth_codes(): void FILE: tests/Unit/Rules/ColorRuleTest.php class ColorRuleTest (line 12) | #[CoversClass(ColorRule::class)] method test_validation_passes_if_value_is_valid_color (line 15) | public function test_validation_passes_if_value_is_valid_color(): void method test_validation_fails_if_value_is_not_a_string (line 33) | public function test_validation_fails_if_value_is_not_a_string(): void method test_validation_fails_if_value_is_not_a_valid_color (line 51) | public function test_validation_fails_if_value_is_not_a_valid_color():... FILE: tests/Unit/Rules/CurrencyRuleTest.php class CurrencyRuleTest (line 12) | #[CoversClass(CurrencyRule::class)] method test_validation_passes_if_value_is_valid_currency_code (line 15) | public function test_validation_passes_if_value_is_valid_currency_code... method test_validation_fails_if_value_is_not_a_string (line 33) | public function test_validation_fails_if_value_is_not_a_string(): void method test_validation_fails_if_value_is_not_a_valid_currency (line 51) | public function test_validation_fails_if_value_is_not_a_valid_currency... method test_validation_fails_if_value_is_lower_case (line 69) | public function test_validation_fails_if_value_is_lower_case(): void FILE: tests/Unit/Service/BillableRateServiceTest.php class BillableRateServiceTest (line 19) | #[CoversClass(BillableRateService::class)] method setUp (line 26) | protected function setUp(): void method test_update_time_entries_billable_rate_for_project_member_updates_time_entries_of_project_member (line 36) | public function test_update_time_entries_billable_rate_for_project_mem... method test_update_time_entries_billable_rate_for_project_member_updates_time_entries_of_project_member_even_if_all_other_billable_rates_are_set (line 59) | public function test_update_time_entries_billable_rate_for_project_mem... method test_update_time_entries_billable_rate_for_project_member_ignores_time_entries_of_other_member (line 90) | public function test_update_time_entries_billable_rate_for_project_mem... method test_update_time_entries_billable_rate_for_project_updates_time_entries_of_project (line 122) | public function test_update_time_entries_billable_rate_for_project_upd... method test_update_time_entries_billable_rate_for_project_updates_time_entries_of_project_all_other_billable_rates_null (line 144) | public function test_update_time_entries_billable_rate_for_project_upd... method test_update_time_entries_billable_rate_for_project_ignores_time_entries_that_are_not_billable (line 169) | public function test_update_time_entries_billable_rate_for_project_ign... method test_update_time_entries_billable_rate_for_project_ignores_time_entries_that_have_project_member_with_billable_rate (line 191) | public function test_update_time_entries_billable_rate_for_project_ign... method test_update_time_entries_billable_rate_for_project_ignores_time_entries_of_that_project_but_are_incorrectly_attached_to_other_organization (line 216) | public function test_update_time_entries_billable_rate_for_project_ign... method test_update_time_entries_billable_rate_for_member_updates_time_entries_of_member (line 248) | public function test_update_time_entries_billable_rate_for_member_upda... method test_update_time_entries_billable_rate_for_member_updates_time_entries_of_member_all_other_billable_rates_null (line 270) | public function test_update_time_entries_billable_rate_for_member_upda... method test_update_time_entries_billable_rate_for_member_ignores_time_entries_that_have_project_member_with_billable_rate (line 299) | public function test_update_time_entries_billable_rate_for_member_igno... method test_update_time_entries_billable_rate_for_member_ignores_time_entries_that_have_project_with_billable_rate (line 328) | public function test_update_time_entries_billable_rate_for_member_igno... method test_update_time_entries_billable_rate_for_organization_updates_time_entries_of_organization (line 358) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_updates_time_entries_of_organization_all_other_billable_rates_null (line 381) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_ignores_time_entries_that_are_not_billable (line 411) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_ignores_time_entries_of_organization (line 433) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_ignores_time_entries_with_member_with_billable_rate (line 456) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_ignores_time_entries_with_project_with_billable_rate (line 482) | public function test_update_time_entries_billable_rate_for_organizatio... method test_update_time_entries_billable_rate_for_organization_ignores_time_entries_with_project_member_with_billable_rate (line 509) | public function test_update_time_entries_billable_rate_for_organizatio... method test_billable_rate_is_null_if_time_entry_is_not_billable (line 542) | public function test_billable_rate_is_null_if_time_entry_is_not_billab... method test_billable_rate_uses_project_member_rate_as_first_priority (line 569) | public function test_billable_rate_uses_project_member_rate_as_first_p... method test_billable_rate_uses_project_rate_as_second_priority_using_null_values_before (line 596) | public function test_billable_rate_uses_project_rate_as_second_priorit... method test_billable_rate_uses_project_rate_as_second_priority_using_non_existing_entities_before (line 623) | public function test_billable_rate_uses_project_rate_as_second_priorit... method test_billable_rate_uses_organization_member_rate_as_third_priority_using_null_values_before (line 647) | public function test_billable_rate_uses_organization_member_rate_as_th... method test_billable_rate_uses_organization_member_rate_as_third_priority_using_non_existing_entities_before (line 674) | public function test_billable_rate_uses_organization_member_rate_as_th... method test_billable_rate_uses_organization_rate_as_fourth_priority_using_null_values_before (line 695) | public function test_billable_rate_uses_organization_rate_as_fourth_pr... method test_billable_rate_uses_organization_rate_as_fourth_priority_using_non_existing_entities_before (line 722) | public function test_billable_rate_uses_organization_rate_as_fourth_pr... method test_billable_rate_is_null_if_billable_rate_on_all_levels_are_null (line 743) | public function test_billable_rate_is_null_if_billable_rate_on_all_lev... method test_billable_rate_with_given_relations_returns_null_if_not_billable (line 770) | public function test_billable_rate_with_given_relations_returns_null_i... method test_billable_rate_with_given_relations_uses_project_member_rate_as_first_priority (line 805) | public function test_billable_rate_with_given_relations_uses_project_m... method test_billable_rate_with_given_relations_uses_project_rate_as_second_priority_using_null_values_before (line 840) | public function test_billable_rate_with_given_relations_uses_project_r... method test_billable_rate_with_given_relations_uses_project_rate_as_second_priority_using_non_existing_entities_before (line 875) | public function test_billable_rate_with_given_relations_uses_project_r... method test_billable_rate_with_given_relations_uses_organization_member_rate_as_third_priority_using_null_values_before (line 907) | public function test_billable_rate_with_given_relations_uses_organizat... method test_billable_rate_with_given_relations_uses_organization_member_rate_as_third_priority_using_non_existing_entities_before (line 942) | public function test_billable_rate_with_given_relations_uses_organizat... method test_billable_rate_with_given_relations_uses_organization_rate_as_fourth_priority_using_null_values_before (line 971) | public function test_billable_rate_with_given_relations_uses_organizat... method test_billable_rate_with_given_relations_uses_organization_rate_as_fourth_priority_using_non_existing_entities_before (line 1006) | public function test_billable_rate_with_given_relations_uses_organizat... method test_billable_rate_with_given_relations_is_null_if_billable_rate_on_all_levels_are_null (line 1035) | public function test_billable_rate_with_given_relations_is_null_if_bil... FILE: tests/Unit/Service/CurrencyServiceTest.php class CurrencyServiceTest (line 13) | #[CoversClass(CurrencyService::class)] method setUp (line 18) | protected function setUp(): void method test_get_currency_symbol_for_currency_eur (line 24) | public function test_get_currency_symbol_for_currency_eur(): void method test_get_currency_symbol_for_currency_usd (line 36) | public function test_get_currency_symbol_for_currency_usd(): void method test_get_currency_symbol_for_currency_gbp (line 48) | public function test_get_currency_symbol_for_currency_gbp(): void method test_get_currency_symbol_for_currency_cad (line 60) | public function test_get_currency_symbol_for_currency_cad(): void method test_get_currency_symbol_for_currency_cop (line 72) | public function test_get_currency_symbol_for_currency_cop(): void method test_get_currency_symbol_for_currency_without_known_symbol (line 84) | public function test_get_currency_symbol_for_currency_without_known_sy... method test_get_random_currency_code (line 96) | public function test_get_random_currency_code(): void FILE: tests/Unit/Service/DashboardServiceTest.php class DashboardServiceTest (line 21) | #[CoversClass(DashboardService::class)] method setUp (line 28) | protected function setUp(): void method test_daily_tracked_hours_returns_correct_values (line 34) | public function test_daily_tracked_hours_returns_correct_values(): void method test_weekly_history_returns_correct_values (line 82) | public function test_weekly_history_returns_correct_values(): void method test_total_weekly_time_returns_correct_value (line 142) | public function test_total_weekly_time_returns_correct_value(): void method test_total_weekly_billable_time_returns_correct_value (line 173) | public function test_total_weekly_billable_time_returns_correct_value(... method test_total_weekly_billable_amount_returns_correct_value (line 213) | public function test_total_weekly_billable_amount_returns_correct_valu... method test_weekly_project_overview_returns_correct_value_if_time_entries_for_projects_exist_in_current_week (line 261) | public function test_weekly_project_overview_returns_correct_value_if_... method test_weekly_project_overview_returns_correct_value_if_only_entries_without_project_exist_in_the_week (line 337) | public function test_weekly_project_overview_returns_correct_value_if_... method test_weekly_project_overview_returns_correct_value_if_no_entries_are_in_the_week (line 379) | public function test_weekly_project_overview_returns_correct_value_if_... method test_latest_team_activity_returns_the_most_current_working_users_and_what_they_are_working_on (line 405) | public function test_latest_team_activity_returns_the_most_current_wor... method test_latest_tasks_returns_the_4_tasks_with_the_latest_time_entries (line 478) | public function test_latest_tasks_returns_the_4_tasks_with_the_latest_... method test_last_seven_days_returns_spend_time_in_the_last_seven_days_aggregated_in_three_hour_blocks (line 538) | public function test_last_seven_days_returns_spend_time_in_the_last_se... FILE: tests/Unit/Service/DeletionServiceTest.php class DeletionServiceTest (line 30) | #[CoversClass(DeletionService::class)] method setUp (line 35) | protected function setUp(): void method createOrganizationWithAllRelations (line 61) | private function createOrganizationWithAllRelations(): object method assertOrganizationDeleted (line 122) | private function assertOrganizationDeleted(Organization $organization)... method assertOrganizationNothingDeleted (line 138) | private function assertOrganizationNothingDeleted(Organization $organi... method test_delete_organization_resets_the_current_organization_of_users_that_had_the_deleted_organization_as_current_organization (line 151) | public function test_delete_organization_resets_the_current_organizati... method test_delete_organization_deletes_all_resources_of_the_organization_but_does_not_delete_other_resources (line 169) | public function test_delete_organization_deletes_all_resources_of_the_... method test_delete_organization_rolls_back_on_error_if_transaction_is_active (line 193) | public function test_delete_organization_rolls_back_on_error_if_transa... method test_delete_user_fails_if_user_is_owner_of_an_organization_with_multiple_members (line 228) | public function test_delete_user_fails_if_user_is_owner_of_an_organiza... method test_delete_user_rolls_back_on_error_if_transaction_is_active (line 244) | public function test_delete_user_rolls_back_on_error_if_transaction_is... method test_delete_user_deletes_all_resources_of_the_user_but_does_not_delete_other_resources (line 286) | public function test_delete_user_deletes_all_resources_of_the_user_but... method test_delete_user_deletes_owned_organizations_that_have_only_one_member_and_makes_makes_the_user_placeholder_in_not_owned_organizations (line 331) | public function test_delete_user_deletes_owned_organizations_that_have... method test_delete_user_with_current_organization_set_to_owned_org_that_will_be_deleted_does_not_cause_foreign_key_violation (line 386) | public function test_delete_user_with_current_organization_set_to_owne... FILE: tests/Unit/Service/Export/ExportServiceTest.php class ExportServiceTest (line 22) | #[CoversClass(ExportService::class)] method getFullOrganization (line 25) | private function getFullOrganization(): Organization method test_export_creates_zip_with_all_the_data_of_the_organization (line 51) | public function test_export_creates_zip_with_all_the_data_of_the_organ... FILE: tests/Unit/Service/Import/ImportDatabaseHelperTest.php class ImportDatabaseHelperTest (line 16) | #[CoversClass(ImportDatabaseHelper::class)] method test_get_key_attach_to_existing_returns_key_for_identifier_without_creating_model (line 21) | public function test_get_key_attach_to_existing_returns_key_for_identi... method test_get_key_attach_to_existing_creates_model_if_not_existing (line 38) | public function test_get_key_attach_to_existing_creates_model_if_not_e... method test_get_key_not_attach_to_existing_is_not_implemented_yet (line 59) | public function test_get_key_not_attach_to_existing_is_not_implemented... method test_get_key_by_external_identifier_returns_key_for_external_identifier (line 83) | public function test_get_key_by_external_identifier_returns_key_for_ex... method test_get_external_ids_returns_all_external_ids_that_were_temporary_stored_via_get_key (line 113) | public function test_get_external_ids_returns_all_external_ids_that_we... method test_get_model_by_identifier_returns_model_for_identifier (line 143) | public function test_get_model_by_identifier_returns_model_for_identif... method test_get_model_by_identifier_returns_null_for_not_existing_identifier (line 158) | public function test_get_model_by_identifier_returns_null_for_not_exis... method test_get_model_by_identifier_caches_result (line 172) | public function test_get_model_by_identifier_caches_result(): void method test_get_model_by_id_returns_model_for_id (line 191) | public function test_get_model_by_id_returns_model_for_id(): void method test_get_model_by_id_returns_null_for_not_existing_id (line 204) | public function test_get_model_by_id_returns_null_for_not_existing_id(... method test_get_model_by_id_caches_result (line 216) | public function test_get_model_by_id_caches_result(): void method test_get_cached_models_returns_all_models_where_the_helper_already_fetched_the_model (line 231) | public function test_get_cached_models_returns_all_models_where_the_he... FILE: tests/Unit/Service/Import/ImportServiceTest.php class ImportServiceTest (line 17) | #[CoversClass(ImportService::class)] method test_import_gets_importer_from_provider_runs_importer_and_returns_report (line 23) | public function test_import_gets_importer_from_provider_runs_importer_... method test_import_releases_lock_if_an_exception_happens_during_the_import (line 46) | public function test_import_releases_lock_if_an_exception_happens_duri... method test_import_throws_exception_if_import_is_already_in_progress (line 65) | public function test_import_throws_exception_if_import_is_already_in_p... FILE: tests/Unit/Service/Import/Importers/ClockifyProjectsImporterTest.php class ClockifyProjectsImporterTest (line 14) | #[CoversClass(ClockifyProjectsImporter::class)] method test_import_of_test_file_succeeds (line 19) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_file_twice_succeeds (line 35) | public function test_import_of_test_file_twice_succeeds(): void FILE: tests/Unit/Service/Import/Importers/ClockifyTimeEntriesImporterTest.php class ClockifyTimeEntriesImporterTest (line 15) | #[CoversClass(ClockifyTimeEntriesImporter::class)] method test_import_of_test_file_succeeds (line 20) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_with_special_characters_description_succeeds (line 44) | public function test_import_of_test_with_special_characters_descriptio... method test_import_of_test_file_twice_succeeds (line 69) | public function test_import_of_test_file_twice_succeeds(): void method test_import_fails_if_month_in_date_is_bigger_than_12 (line 96) | public function test_import_fails_if_month_in_date_is_bigger_than_12()... FILE: tests/Unit/Service/Import/Importers/GenericProjectsImporterTest.php class GenericProjectsImporterTest (line 18) | #[CoversClass(GenericProjectsImporter::class)] method test_import_of_test_file_succeeds (line 23) | public function test_import_of_test_file_succeeds(): void FILE: tests/Unit/Service/Import/Importers/GenericTimeEntriesImporterTest.php class GenericTimeEntriesImporterTest (line 14) | #[CoversClass(GenericTimeEntriesImporter::class)] method test_import_of_test_file_succeeds (line 19) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_file_twice_succeeds (line 43) | public function test_import_of_test_file_twice_succeeds(): void FILE: tests/Unit/Service/Import/Importers/HarvestClientsImporterTest.php class HarvestClientsImporterTest (line 15) | #[CoversClass(HarvestClientsImporter::class)] method test_import_of_test_file_succeeds (line 20) | public function test_import_of_test_file_succeeds(): void FILE: tests/Unit/Service/Import/Importers/HarvestProjectsImporterTest.php class HarvestProjectsImporterTest (line 16) | #[CoversClass(HarvestProjectsImporter::class)] method test_import_of_test_file_succeeds (line 21) | public function test_import_of_test_file_succeeds(): void FILE: tests/Unit/Service/Import/Importers/HarvestTimeEntriesImporterTest.php class HarvestTimeEntriesImporterTest (line 22) | #[CoversClass(HarvestTimeEntriesImporter::class)] method test_import_of_test_file_succeeds (line 27) | public function test_import_of_test_file_succeeds(): void FILE: tests/Unit/Service/Import/Importers/ImporterProviderTest.php class ImporterProviderTest (line 12) | #[CoversClass(ImporterProvider::class)] method test_register_importer_can_register_a_new_importer_for_example_in_an_extension (line 15) | public function test_register_importer_can_register_a_new_importer_for... method test_get_importer_keys_return_the_keys_of_the_available_importers (line 28) | public function test_get_importer_keys_return_the_keys_of_the_availabl... FILE: tests/Unit/Service/Import/Importers/ImporterTestAbstract.php class ImporterTestAbstract (line 22) | class ImporterTestAbstract extends TestCase method checkTestScenarioAfterImportExcludingTimeEntries (line 29) | protected function checkTestScenarioAfterImportExcludingTimeEntries(bo... method checkTestScenarioProjectsOnlyAfterImport (line 139) | protected function checkTestScenarioProjectsOnlyAfterImport(): object method checkTimeEntries (line 179) | protected function checkTimeEntries(object $testScenario, bool $second... method createTestZip (line 205) | protected function createTestZip(string $folder): string FILE: tests/Unit/Service/Import/Importers/SolidtimeImporterTest.php class SolidtimeImporterTest (line 18) | #[CoversClass(SolidtimeImporter::class)] method test_import_throws_exception_if_data_is_not_zip (line 23) | public function test_import_throws_exception_if_data_is_not_zip(): void method test_import_of_test_file_succeeds (line 43) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_file_twice_succeeds (line 78) | public function test_import_of_test_file_twice_succeeds(): void FILE: tests/Unit/Service/Import/Importers/TogglDataImporterTest.php class TogglDataImporterTest (line 15) | #[CoversClass(TogglDataImporter::class)] method test_import_throws_exception_if_data_is_not_zip (line 20) | public function test_import_throws_exception_if_data_is_not_zip(): void method test_import_of_test_file_succeeds (line 40) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_file_twice_succeeds (line 64) | public function test_import_of_test_file_twice_succeeds(): void method test_import_of_user_with_unknown_timezone_will_be_mapped_to_utc (line 91) | public function test_import_of_user_with_unknown_timezone_will_be_mapp... FILE: tests/Unit/Service/Import/Importers/TogglTimeEntriesImporterTest.php class TogglTimeEntriesImporterTest (line 19) | #[CoversClass(TogglTimeEntriesImporter::class)] method test_import_of_test_file_succeeds (line 24) | public function test_import_of_test_file_succeeds(): void method test_import_of_test_with_special_characters_description_succeeds (line 58) | public function test_import_of_test_with_special_characters_descriptio... method test_import_of_test_file_twice_succeeds (line 87) | public function test_import_of_test_file_twice_succeeds(): void FILE: tests/Unit/Service/IntervalServiceTest.php class IntervalServiceTest (line 11) | class IntervalServiceTest extends TestCase method test_format_returns_correctly_formatted_interval (line 13) | public function test_format_returns_correctly_formatted_interval(): void FILE: tests/Unit/Service/LocalizationServiceTest.php class LocalizationServiceTest (line 20) | #[CoversClass(LocalizationService::class)] method setUp (line 25) | protected function setUp(): void method test_format_interval_with_type_decimal_and_number_format_thousands_comma_decimal_point (line 37) | public function test_format_interval_with_type_decimal_and_number_form... method test_format_interval_with_type_decimal_and_number_format_thousands_space_decimal_point (line 51) | public function test_format_interval_with_type_decimal_and_number_form... method test_format_interval_with_type_decimal_and_number_format_thousands_point_decimal_comma (line 65) | public function test_format_interval_with_type_decimal_and_number_form... method test_format_interval_with_type_decimal_and_number_format_thousands_apostrophe_decimal_point (line 79) | public function test_format_interval_with_type_decimal_and_number_form... method test_format_interval_with_type_hours_minutes (line 93) | public function test_format_interval_with_type_hours_minutes(): void method test_format_interval_with_type_hours_minutes_colon_separated (line 106) | public function test_format_interval_with_type_hours_minutes_colon_sep... method test_format_interval_with_type_hours_minutes_seconds_colon_separated (line 119) | public function test_format_interval_with_type_hours_minutes_seconds_c... method test_format_currency_with_type_symbol_after_with_space_and_number_format_thousands_space_decimal_comma (line 132) | public function test_format_currency_with_type_symbol_after_with_space... method test_format_currency_with_type_symbol_before_with_space_and_number_format_thousands_space_decimal_comma (line 146) | public function test_format_currency_with_type_symbol_before_with_spac... method test_format_currency_with_type_symbol_before_and_number_format_thousands_space_decimal_comma (line 160) | public function test_format_currency_with_type_symbol_before_and_numbe... method test_format_currency_with_type_symbol_after_and_number_format_thousands_space_decimal_comma (line 174) | public function test_format_currency_with_type_symbol_after_and_number... method test_format_currency_with_type_iso_code_after_with_space_and_number_format_thousands_space_decimal_comma (line 188) | public function test_format_currency_with_type_iso_code_after_with_spa... method test_format_currency_with_type_iso_code_before_with_space_and_number_format_thousands_space_decimal_comma (line 202) | public function test_format_currency_with_type_iso_code_before_with_sp... method test_format_date_with_type_slash_separated_ddmmy (line 216) | public function test_format_date_with_type_slash_separated_ddmmy(): void method test_format_time_with_type_twelve_hours (line 229) | public function test_format_time_with_type_twelve_hours(): void method test_format_time_with_type_twenty_four_hours (line 242) | public function test_format_time_with_type_twenty_four_hours(): void FILE: tests/Unit/Service/MemberServiceTest.php class MemberServiceTest (line 20) | #[CoversClass(MemberService::class)] method setUp (line 26) | protected function setUp(): void method test_change_ownership_fails_if_member_is_not_part_of_organization (line 32) | public function test_change_ownership_fails_if_member_is_not_part_of_o... method test_change_ownership_changes_ownership_to_new_member (line 50) | public function test_change_ownership_changes_ownership_to_new_member(... method test_make_member_to_placeholder_creates_new_user_based_on_member_and_changes_member_to_placeholder (line 67) | public function test_make_member_to_placeholder_creates_new_user_based... method test_make_member_to_placeholder_resets_current_organization_of_user_if_user_is_no_longer_member_to_newly_created_organization (line 115) | public function test_make_member_to_placeholder_resets_current_organiz... method test_make_member_to_placeholder_resets_current_organization_of_user_if_user_is_no_longer_member_to_already_existing_other_organization (line 131) | public function test_make_member_to_placeholder_resets_current_organiz... method test_assign_organization_entities_to_different_member_without_any_entries (line 150) | public function test_assign_organization_entities_to_different_member_... method test_assign_organization_entities_to_different_member_with_entries (line 185) | public function test_assign_organization_entities_to_different_member_... FILE: tests/Unit/Service/PermissionStoreTest.php class PermissionStoreTest (line 16) | #[CoversClass(PermissionStore::class)] method test_has_method_returns_false_when_user_is_not_authenticated (line 21) | public function test_has_method_returns_false_when_user_is_not_authent... method test_has_method_returns_false_when_user_does_not_belong_to_organization (line 36) | public function test_has_method_returns_false_when_user_does_not_belon... method test_has_method_returns_false_when_user_does_not_have_permission (line 51) | public function test_has_method_returns_false_when_user_does_not_have_... method test_has_method_returns_true_when_user_has_permission (line 67) | public function test_has_method_returns_true_when_user_has_permission(... method test_get_permissions_method_returns_empty_array_when_user_is_not_authenticated (line 83) | public function test_get_permissions_method_returns_empty_array_when_u... method test_get_permissions_method_returns_empty_array_when_user_does_not_belong_to_organization (line 98) | public function test_get_permissions_method_returns_empty_array_when_u... method test_get_permissions_method_returns_permissions_when_user_belongs_to_organization (line 112) | public function test_get_permissions_method_returns_permissions_when_u... method test_employee_does_not_have_task_permissions_by_default (line 128) | public function test_employee_does_not_have_task_permissions_by_defaul... method test_employee_has_task_permissions_when_organization_allows_it (line 148) | public function test_employee_has_task_permissions_when_organization_a... method test_non_employee_roles_are_not_affected_by_employees_can_manage_tasks_setting (line 169) | public function test_non_employee_roles_are_not_affected_by_employees_... method test_get_permissions_includes_task_permissions_for_employee_when_enabled (line 189) | public function test_get_permissions_includes_task_permissions_for_emp... FILE: tests/Unit/Service/TimeEntryAggregationServiceTest.php class TimeEntryAggregationServiceTest (line 19) | #[CoversClass(TimeEntryAggregationService::class)] method setUp (line 24) | protected function setUp(): void method test_aggregate_time_entries_empty_state_by_day_and_project_returns_empty_array_if_no_time_entries_given (line 30) | public function test_aggregate_time_entries_empty_state_by_day_and_pro... method test_aggregate_time_entries_by_project_and_description (line 59) | public function test_aggregate_time_entries_by_project_and_description... method test_aggregate_time_entries_without_billable_amounts (line 146) | public function test_aggregate_time_entries_without_billable_amounts()... method test_aggregate_time_entries_empty_state_by_day_and_project_with_filled_gaps (line 233) | public function test_aggregate_time_entries_empty_state_by_day_and_pro... method test_aggregate_time_entries_empty_state_by_user_and_project_with_filled_gaps (line 278) | public function test_aggregate_time_entries_empty_state_by_user_and_pr... method test_aggregate_time_entries_empty_state_by_user_and_day_with_filled_gaps (line 307) | public function test_aggregate_time_entries_empty_state_by_user_and_da... method test_aggregate_time_entries_by_client_and_project (line 336) | public function test_aggregate_time_entries_by_client_and_project(): void method test_aggregate_time_can_round_up_per_time_entry (line 427) | public function test_aggregate_time_can_round_up_per_time_entry(): void method test_aggregate_time_can_round_down_per_time_entry (line 525) | public function test_aggregate_time_can_round_down_per_time_entry(): void method test_aggregate_time_can_round_to_nearest_per_time_entry (line 623) | public function test_aggregate_time_can_round_to_nearest_per_time_entr... method test_aggregate_time_entries_by_client_and_project_with_filled_gaps (line 723) | public function test_aggregate_time_entries_by_client_and_project_with... method test_aggregated_time_entries_with_descriptions_by_description_and_billable (line 814) | public function test_aggregated_time_entries_with_descriptions_by_desc... method test_aggregated_time_entries_with_descriptions_by_client_and_project (line 907) | public function test_aggregated_time_entries_with_descriptions_by_clie... method test_aggregate_time_entries_group_by_tag_includes_no_tag_and_avoids_double_counting_overall (line 1012) | public function test_aggregate_time_entries_group_by_tag_includes_no_t... method test_aggregate_time_entries_group_by_project_and_subgroup_tag (line 1081) | public function test_aggregate_time_entries_group_by_project_and_subgr... method test_aggregate_time_entries_group_by_project_and_subgroup_tag_avoids_double_counting (line 1146) | public function test_aggregate_time_entries_group_by_project_and_subgr... method test_aggregate_time_round_up_does_not_add_time_when_already_on_boundary (line 1213) | public function test_aggregate_time_round_up_does_not_add_time_when_al... method test_aggregate_time_round_up_works_when_not_on_boundary (line 1262) | public function test_aggregate_time_round_up_works_when_not_on_boundar... FILE: tests/Unit/Service/TimeEntryFilterTest.php class TimeEntryFilterTest (line 16) | #[CoversClass(TimeEntryFilter::class)] method test_add_tag_ids_filter_is_or (line 19) | public function test_add_tag_ids_filter_is_or(): void method test_add_project_ids_filter_with_none_returns_entries_without_project (line 46) | public function test_add_project_ids_filter_with_none_returns_entries_... method test_add_project_ids_filter_with_none_and_ids_returns_both (line 71) | public function test_add_project_ids_filter_with_none_and_ids_returns_... method test_add_task_ids_filter_with_none_returns_entries_without_task (line 102) | public function test_add_task_ids_filter_with_none_returns_entries_wit... method test_add_client_ids_filter_with_none_returns_entries_without_client (line 127) | public function test_add_client_ids_filter_with_none_returns_entries_w... method test_add_tag_ids_filter_with_none_returns_entries_without_tags (line 152) | public function test_add_tag_ids_filter_with_none_returns_entries_with... method test_add_tag_ids_filter_with_none_and_ids_returns_both (line 180) | public function test_add_tag_ids_filter_with_none_and_ids_returns_both... FILE: tests/Unit/Service/TimezoneServiceTest.php class TimezoneServiceTest (line 15) | #[CoversClass(TimezoneService::class)] method test_get_timezones_returns_all_available_timezones (line 20) | public function test_get_timezones_returns_all_available_timezones(): ... method test_get_timezone_from_user_returns_timezone_of_user_as_carbon_timezone (line 36) | public function test_get_timezone_from_user_returns_timezone_of_user_a... method test_get_timezone_from_user_falls_back_to_utc_and_logs_this_failure_if_timezone_in_db_is_corrupt (line 53) | public function test_get_timezone_from_user_falls_back_to_utc_and_logs... FILE: tests/Unit/Service/UserServiceTest.php class UserServiceTest (line 19) | #[CoversClass(UserService::class)] method setUp (line 26) | protected function setUp(): void method test_assign_organization_entities_to_different_user (line 32) | public function test_assign_organization_entities_to_different_user():... method test_change_ownership_changes_ownership_of_organization_to_new_user (line 60) | public function test_change_ownership_changes_ownership_of_organizatio... method test_change_ownership_fails_if_new_user_is_not_member_of_organization (line 82) | public function test_change_ownership_fails_if_new_user_is_not_member_... method test_make_sure_user_has_current_organization_sets_current_organization_for_user_if_null (line 100) | public function test_make_sure_user_has_current_organization_sets_curr... method make_sure_user_has_at_least_one_organization_creates_organization_for_user_if_there_are_not_member_of_one (line 117) | public function make_sure_user_has_at_least_one_organization_creates_o... FILE: vite-module-loader.js function collectModuleAssetsPaths (line 4) | async function collectModuleAssetsPaths(modulesPath) { function collectModulePlugins (line 8) | async function collectModulePlugins(modulesPath) { function getExportedModulesArrayAttributes (line 12) | async function getExportedModulesArrayAttributes(modulesPath, attribute) { FILE: vite.config.js function getConfig (line 7) | async function getConfig() {