ci: fix tests workflow and clear pre-existing lint errors
- Add `php artisan passport:keys --force` step to tests workflow so the OAuth2 server keys exist before tests run. Without them every API test failed with `LogicException: Invalid key supplied` from `vendor/league/oauth2-server/src/CryptKey.php`. - Clear 4 pre-existing unused-variable lint errors that were blocking this PR's CI (auth/GoogleAuthButton, billing/Subscribe, posts/editor/CommentsTab, posts/editor/TikTokSettings). - `eslint --fix` also reordered imports alphabetically in 11 other files — pure cosmetic.
This commit is contained in:
parent
9a26e6d802
commit
bec831fec6
16 changed files with 17 additions and 24 deletions
3
.github/workflows/tests.yml
vendored
3
.github/workflows/tests.yml
vendored
|
|
@ -89,6 +89,9 @@ jobs:
|
|||
DB_PORT: ${{ job.services.postgres.ports['5432'] }}
|
||||
REDIS_PORT: ${{ job.services.redis.ports['6379'] }}
|
||||
|
||||
- name: Generate Passport keys
|
||||
run: php artisan passport:keys --force
|
||||
|
||||
- name: Run tests
|
||||
run: php artisan test --compact
|
||||
env:
|
||||
|
|
|
|||
|
|
@ -19,8 +19,6 @@ import { trans } from 'laravel-vue-i18n';
|
|||
import { computed } from 'vue';
|
||||
|
||||
import { create as createPost, index as postsIndex } from '@/actions/App/Http/Controllers/App/PostController';
|
||||
import { useFeatureAccess } from '@/composables/useFeatureAccess';
|
||||
import { useUpgradeDialog } from '@/composables/useUpgradeDialog';
|
||||
import NavMain from '@/components/NavMain.vue';
|
||||
import NavUser from '@/components/NavUser.vue';
|
||||
import { Avatar } from '@/components/ui/avatar';
|
||||
|
|
@ -43,6 +41,8 @@ import {
|
|||
SidebarMenuItem,
|
||||
useSidebar,
|
||||
} from '@/components/ui/sidebar';
|
||||
import { useFeatureAccess } from '@/composables/useFeatureAccess';
|
||||
import { useUpgradeDialog } from '@/composables/useUpgradeDialog';
|
||||
import { accounts, analytics, calendar, settings as settingsHub } from '@/routes/app';
|
||||
import { index as assets } from '@/routes/app/assets';
|
||||
import { index as labels } from '@/routes/app/labels';
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { computed } from 'vue';
|
|||
import { Button } from '@/components/ui/button';
|
||||
import { redirect as googleRedirect } from '@/routes/auth/google';
|
||||
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
label: string;
|
||||
}>();
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ import { Form } from '@inertiajs/vue3';
|
|||
import { trans } from 'laravel-vue-i18n';
|
||||
import { ref } from 'vue';
|
||||
|
||||
import { WorkspaceRole } from '@/enums/workspace-role';
|
||||
import InputError from '@/components/InputError.vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import {
|
||||
|
|
@ -23,6 +22,7 @@ import {
|
|||
SelectTrigger,
|
||||
SelectValue,
|
||||
} from '@/components/ui/select';
|
||||
import { WorkspaceRole } from '@/enums/workspace-role';
|
||||
import { store as storeInvite } from '@/routes/app/invites';
|
||||
|
||||
const open = defineModel<boolean>('open', { default: false });
|
||||
|
|
|
|||
|
|
@ -375,10 +375,6 @@ const showEmojiPicker = (commentId: string) => {
|
|||
emojiPickerCommentId.value = commentId;
|
||||
};
|
||||
|
||||
const hideEmojiPicker = () => {
|
||||
emojiPickerCommentId.value = null;
|
||||
};
|
||||
|
||||
const handleKeydown = (event: KeyboardEvent) => {
|
||||
if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ import { computed, nextTick, ref } from 'vue';
|
|||
|
||||
import ImagePreviewDialog from '@/components/ImagePreviewDialog.vue';
|
||||
import EmojiPicker from '@/components/posts/EmojiPicker.vue';
|
||||
import SignaturesModal from '@/components/posts/SignaturesModal.vue';
|
||||
import MediaPickerDialog from '@/components/posts/MediaPickerDialog.vue';
|
||||
import SignaturesModal from '@/components/posts/SignaturesModal.vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Popover, PopoverAnchor, PopoverContent } from '@/components/ui/popover';
|
||||
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
|
||||
|
|
|
|||
|
|
@ -21,12 +21,6 @@ interface SocialAccount {
|
|||
avatar_url: string | null;
|
||||
}
|
||||
|
||||
interface PublishConfig {
|
||||
privacyLevelOptions: string[];
|
||||
musicUsageConfirmationUrl: string;
|
||||
brandedContentPolicyUrl: string;
|
||||
}
|
||||
|
||||
interface CreatorInfo {
|
||||
creator_nickname: string | null;
|
||||
creator_username: string | null;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { ref, type Ref } from 'vue';
|
||||
|
||||
import { store as storeAsset, storeChunked as storeAssetChunked } from '@/routes/app/assets';
|
||||
import { getMediaRulesForContentType } from '@/composables/useMediaRules';
|
||||
import { store as storeAsset, storeChunked as storeAssetChunked } from '@/routes/app/assets';
|
||||
import { uploadChunked, shouldUseChunkedUpload } from '@/utils/chunkedUpload';
|
||||
|
||||
export interface MediaItem {
|
||||
|
|
|
|||
|
|
@ -3,10 +3,10 @@ import { useHttp, usePage } from '@inertiajs/vue3';
|
|||
import { onBeforeUnmount, onMounted } from 'vue';
|
||||
|
||||
import AppHeader from '@/components/AppHeader.vue';
|
||||
import UpgradeDialog from '@/components/UpgradeDialog.vue';
|
||||
import AppSidebar from '@/components/AppSidebar.vue';
|
||||
import Toast from '@/components/Toast.vue';
|
||||
import { SidebarInset, SidebarProvider } from '@/components/ui/sidebar';
|
||||
import UpgradeDialog from '@/components/UpgradeDialog.vue';
|
||||
import { heartbeat as heartbeatRoute } from '@/routes/app/presence';
|
||||
import type { BreadcrumbItem } from '@/types';
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import PageHeader from '@/components/PageHeader.vue';
|
|||
import { Avatar, AvatarFallback, AvatarImage } from '@/components/ui/avatar';
|
||||
import { Badge } from '@/components/ui/badge';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import {
|
||||
DropdownMenu,
|
||||
DropdownMenuContent,
|
||||
|
|
@ -28,6 +27,7 @@ import {
|
|||
DropdownMenuSeparator,
|
||||
DropdownMenuTrigger,
|
||||
} from '@/components/ui/dropdown-menu';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { Switch } from '@/components/ui/switch';
|
||||
import {
|
||||
Table,
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ interface Plan {
|
|||
monthly_credits_limit: number;
|
||||
}
|
||||
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
plans: Plan[];
|
||||
trialDays: number;
|
||||
}>();
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ import {
|
|||
import { trans } from 'laravel-vue-i18n';
|
||||
import { computed, onUnmounted, ref, watch } from 'vue';
|
||||
|
||||
import ConfirmDeleteModal from '@/components/ConfirmDeleteModal.vue';
|
||||
import AiGenerateDialog from '@/components/posts/ai/AiGenerateDialog.vue';
|
||||
import AiReviewDialog from '@/components/posts/ai/AiReviewDialog.vue';
|
||||
import ConfirmDeleteModal from '@/components/ConfirmDeleteModal.vue';
|
||||
import PostEditorComposer from '@/components/posts/editor/PostEditorComposer.vue';
|
||||
import PostEditorSidebar from '@/components/posts/editor/PostEditorSidebar.vue';
|
||||
import PickTimePopover from '@/components/posts/PickTimePopover.vue';
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ import { Form, Head } from '@inertiajs/vue3';
|
|||
import { trans } from 'laravel-vue-i18n';
|
||||
import { computed } from 'vue';
|
||||
|
||||
import SettingsTabsNav from '@/components/settings/SettingsTabsNav.vue';
|
||||
import HeadingSmall from '@/components/HeadingSmall.vue';
|
||||
import InputError from '@/components/InputError.vue';
|
||||
import SettingsTabsNav from '@/components/settings/SettingsTabsNav.vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Input } from '@/components/ui/input';
|
||||
import { Label } from '@/components/ui/label';
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ import { Label } from '@/components/ui/label';
|
|||
import { Switch } from '@/components/ui/switch';
|
||||
import AppLayout from '@/layouts/AppLayout.vue';
|
||||
import { settings as settingsHub } from '@/routes/app';
|
||||
import { edit as editAuthentication } from '@/routes/app/authentication';
|
||||
import { preferences as preferencesRoute } from '@/routes/app/notifications';
|
||||
import { edit as editProfile } from '@/routes/app/profile';
|
||||
import { edit as editAuthentication } from '@/routes/app/authentication';
|
||||
import type { BreadcrumbItem } from '@/types';
|
||||
|
||||
interface Preferences {
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import { computed } from 'vue';
|
|||
import BrandTab from '@/components/settings/BrandTab.vue';
|
||||
import SettingsTabsNav from '@/components/settings/SettingsTabsNav.vue';
|
||||
import AppLayout from '@/layouts/AppLayout.vue';
|
||||
import { index as apiKeysRoute } from '@/routes/app/api-keys';
|
||||
import { members as membersRoute, settings as settingsHub } from '@/routes/app';
|
||||
import { index as apiKeysRoute } from '@/routes/app/api-keys';
|
||||
import { brand as brandRoute, settings as workspaceSettings } from '@/routes/app/workspace';
|
||||
import type { BreadcrumbItem } from '@/types';
|
||||
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import { computed } from 'vue';
|
|||
import SettingsTabsNav from '@/components/settings/SettingsTabsNav.vue';
|
||||
import WorkspaceTab from '@/components/settings/WorkspaceTab.vue';
|
||||
import AppLayout from '@/layouts/AppLayout.vue';
|
||||
import { index as apiKeysRoute } from '@/routes/app/api-keys';
|
||||
import { members as membersRoute, settings as settingsHub } from '@/routes/app';
|
||||
import { index as apiKeysRoute } from '@/routes/app/api-keys';
|
||||
import { brand as brandRoute, settings as workspaceSettings } from '@/routes/app/workspace';
|
||||
import type { BreadcrumbItem } from '@/types';
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue