firebase-os 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FirebaseOS.d.ts +15 -0
- package/dist/firebase-os.cjs.js +2 -17
- package/dist/firebase-os.es.js +63 -74
- package/dist/index.d.ts +3 -0
- package/dist/lib/ConfigContext.d.ts +12 -0
- package/package.json +3 -2
- package/scripts/postinstall.js +86 -15
- package/src/App.css +184 -0
- package/src/App.tsx +214 -0
- package/src/FirebaseOS.tsx +80 -0
- package/src/assets/hero.png +0 -0
- package/src/assets/react.svg +1 -0
- package/src/assets/vite.svg +1 -0
- package/src/components/AdminNotifications.test.tsx +98 -0
- package/src/components/AdminNotifications.tsx +194 -0
- package/src/components/Button.test.tsx +22 -0
- package/src/components/Button.tsx +53 -0
- package/src/components/ConfirmModal.test.tsx +98 -0
- package/src/components/ConfirmModal.tsx +73 -0
- package/src/components/ContactPopup.test.tsx +98 -0
- package/src/components/ContactPopup.tsx +437 -0
- package/src/components/CustomSelect.test.tsx +47 -0
- package/src/components/CustomSelect.tsx +89 -0
- package/src/components/DashboardNav.test.tsx +98 -0
- package/src/components/DashboardNav.tsx +281 -0
- package/src/components/Input.test.tsx +33 -0
- package/src/components/Input.tsx +61 -0
- package/src/components/JsonEditor.tsx +579 -0
- package/src/components/Navbar.test.tsx +98 -0
- package/src/components/Navbar.tsx +563 -0
- package/src/configs/forms/contactForm.config.ts +15 -0
- package/src/configs/forms/index.ts +29 -0
- package/src/configs/forms/pubForm.config.ts +11 -0
- package/src/configs/forms/supportForm.config.ts +14 -0
- package/src/configs/forms/userForm.config.ts +11 -0
- package/src/configs/pages/admin.config.ts +29 -0
- package/src/configs/pages/contact.config.ts +6 -0
- package/src/configs/pages/home.config.ts +18 -0
- package/src/configs/pages/mem.config.ts +2 -0
- package/src/configs/pages/menuOrders.config.ts +11 -0
- package/src/configs/pages/pub.config.ts +11 -0
- package/src/configs/pages/shared.config.ts +29 -0
- package/src/configs/pages/support.config.ts +7 -0
- package/src/configs/pages/tabOrders.config.ts +33 -0
- package/src/configs/pages/user.config.ts +29 -0
- package/src/configs/theme.config.ts +93 -0
- package/src/index.css +403 -0
- package/src/index.ts +22 -0
- package/src/lib/AuthContext.test.tsx +88 -0
- package/src/lib/AuthContext.tsx +191 -0
- package/src/lib/ConfigContext.tsx +45 -0
- package/src/lib/ThemeContext.tsx +227 -0
- package/src/lib/firebase.ts +91 -0
- package/src/main.tsx +22 -0
- package/src/microcomponents/AdminExampleContent.tsx +44 -0
- package/src/microcomponents/PrivateExampleContent.tsx +39 -0
- package/src/microcomponents/Public.tsx +126 -0
- package/src/microcomponents/SharedExampleContent.tsx +53 -0
- package/src/pages/Dashboard.test.tsx +98 -0
- package/src/pages/Dashboard.tsx +60 -0
- package/src/pages/DynamicPage.tsx +237 -0
- package/src/pages/FormsAdmin.test.tsx +98 -0
- package/src/pages/FormsAdmin.tsx +459 -0
- package/src/pages/Home.test.tsx +98 -0
- package/src/pages/Home.tsx +144 -0
- package/src/pages/Login.test.tsx +98 -0
- package/src/pages/Login.tsx +108 -0
- package/src/pages/PagesAdmin.test.tsx +98 -0
- package/src/pages/PagesAdmin.tsx +1022 -0
- package/src/pages/Profile.test.tsx +98 -0
- package/src/pages/Profile.tsx +319 -0
- package/src/pages/Register.test.tsx +98 -0
- package/src/pages/Register.tsx +116 -0
- package/src/pages/Requests.test.tsx +95 -0
- package/src/pages/Requests.tsx +422 -0
- package/src/pages/ResetPassword.test.tsx +98 -0
- package/src/pages/ResetPassword.tsx +92 -0
- package/src/pages/Settings.test.tsx +98 -0
- package/src/pages/Settings.tsx +393 -0
- package/src/pages/Setup.tsx +401 -0
- package/src/pages/StorageAdmin.test.tsx +150 -0
- package/src/pages/StorageAdmin.tsx +769 -0
- package/src/pages/Submissions.test.tsx +95 -0
- package/src/pages/Submissions.tsx +372 -0
- package/src/pages/Templates.test.tsx +98 -0
- package/src/pages/Templates.tsx +103 -0
- package/src/pages/ThemeAdmin.test.tsx +144 -0
- package/src/pages/ThemeAdmin.tsx +1000 -0
- package/src/pages/Users.test.tsx +95 -0
- package/src/pages/Users.tsx +334 -0
- package/src/pages/Verify.test.tsx +98 -0
- package/src/pages/Verify.tsx +95 -0
- package/src/prompts/index.ts +13 -0
- package/src/prompts/pages/publicPage.ts +44 -0
- package/src/prompts/sharedConstants.ts +12 -0
- package/src/prompts/tabs/board/adminboard.ts +32 -0
- package/src/prompts/tabs/board/privateboard.ts +36 -0
- package/src/prompts/tabs/board/publicboard.ts +36 -0
- package/src/prompts/tabs/calendar/admincalendar.ts +32 -0
- package/src/prompts/tabs/calendar/privatecalendar.ts +36 -0
- package/src/prompts/tabs/calendar/publiccalendar.ts +36 -0
- package/src/prompts/tabs/crud/admin.ts +54 -0
- package/src/prompts/tabs/crud/private.ts +55 -0
- package/src/prompts/tabs/crud/shared.ts +53 -0
- package/src/prompts/tabs/table/admintable.ts +32 -0
- package/src/prompts/tabs/table/privatetable.ts +36 -0
- package/src/prompts/tabs/table/publictable.ts +36 -0
- package/src/setupTests.ts +1 -0
- package/src/templates/AdminPageTemplate.tsx +678 -0
- package/src/templates/PrivatePageTemplate.tsx +594 -0
- package/src/templates/PublicPageTemplate.tsx +92 -0
- package/src/templates/SharedPageTemplate.tsx +551 -0
- package/src/templates/TemplateBoard.test.tsx +106 -0
- package/src/templates/TemplateBoard.tsx +642 -0
- package/src/templates/TemplateCalendar.test.tsx +106 -0
- package/src/templates/TemplateCalendar.tsx +848 -0
- package/src/templates/TemplateConfirmation.test.tsx +106 -0
- package/src/templates/TemplateConfirmation.tsx +145 -0
- package/src/templates/TemplateInlineForm.test.tsx +106 -0
- package/src/templates/TemplateInlineForm.tsx +129 -0
- package/src/templates/TemplatePopupForm.test.tsx +106 -0
- package/src/templates/TemplatePopupForm.tsx +174 -0
- package/src/templates/TemplateTable.test.tsx +106 -0
- package/src/templates/TemplateTable.tsx +675 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
// @generated-test
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
3
|
+
import { render, screen, act } from '@testing-library/react';
|
|
4
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
5
|
+
import { AuthProvider } from '../lib/AuthContext';
|
|
6
|
+
import { ThemeProvider } from '../lib/ThemeContext';
|
|
7
|
+
import { TemplateCalendar } from './TemplateCalendar';
|
|
8
|
+
|
|
9
|
+
// Global mocks
|
|
10
|
+
Object.defineProperty(window, 'matchMedia', {
|
|
11
|
+
writable: true,
|
|
12
|
+
value: vi.fn().mockImplementation(query => ({
|
|
13
|
+
matches: false,
|
|
14
|
+
media: query,
|
|
15
|
+
onchange: null,
|
|
16
|
+
addListener: vi.fn(),
|
|
17
|
+
removeListener: vi.fn(),
|
|
18
|
+
addEventListener: vi.fn(),
|
|
19
|
+
removeEventListener: vi.fn(),
|
|
20
|
+
dispatchEvent: vi.fn(),
|
|
21
|
+
})),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const mockAuthContext = {
|
|
25
|
+
user: { uid: 'mock-user-123', email: 'test@example.com' },
|
|
26
|
+
userWorkspaces: [],
|
|
27
|
+
activeWorkspace: null,
|
|
28
|
+
activeOrg: null,
|
|
29
|
+
loading: false
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
const mockThemeContext = {
|
|
33
|
+
themeMode: 'light',
|
|
34
|
+
setThemeMode: vi.fn(),
|
|
35
|
+
activeConfig: {}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
vi.mock('../lib/AuthContext', () => ({
|
|
39
|
+
AuthProvider: ({ children }: any) => <>{children}</>,
|
|
40
|
+
useAuth: () => mockAuthContext
|
|
41
|
+
}));
|
|
42
|
+
|
|
43
|
+
vi.mock('../lib/ThemeContext', () => ({
|
|
44
|
+
ThemeProvider: ({ children }: any) => <>{children}</>,
|
|
45
|
+
useTheme: () => mockThemeContext
|
|
46
|
+
}));
|
|
47
|
+
|
|
48
|
+
vi.mock('firebase/auth', () => ({
|
|
49
|
+
getAuth: vi.fn(() => ({})),
|
|
50
|
+
onAuthStateChanged: vi.fn((auth, cb) => { cb({ uid: 'mock-user-123', email: 'test@example.com', getIdToken: vi.fn(() => Promise.resolve('mock-token')) }); return () => {}; })
|
|
51
|
+
}));
|
|
52
|
+
vi.mock('firebase/firestore', () => ({
|
|
53
|
+
getFirestore: vi.fn(() => ({})),
|
|
54
|
+
collection: vi.fn(),
|
|
55
|
+
doc: vi.fn(),
|
|
56
|
+
setDoc: vi.fn(() => Promise.resolve()),
|
|
57
|
+
addDoc: vi.fn(() => Promise.resolve()),
|
|
58
|
+
updateDoc: vi.fn(() => Promise.resolve()),
|
|
59
|
+
deleteDoc: vi.fn(() => Promise.resolve()),
|
|
60
|
+
query: vi.fn(),
|
|
61
|
+
where: vi.fn(),
|
|
62
|
+
orderBy: vi.fn(),
|
|
63
|
+
limit: vi.fn(),
|
|
64
|
+
getDoc: vi.fn(() => Promise.resolve({ exists: () => true, data: () => ({ role: 'super_admin' }) })),
|
|
65
|
+
getDocs: vi.fn(() => Promise.resolve({ docs: [], forEach: vi.fn() })),
|
|
66
|
+
onSnapshot: vi.fn((...args: any[]) => {
|
|
67
|
+
let cb = args[1];
|
|
68
|
+
if (typeof args[2] === 'function') {
|
|
69
|
+
cb = args[2];
|
|
70
|
+
}
|
|
71
|
+
if (typeof cb === 'function') {
|
|
72
|
+
cb({docs: [], forEach: vi.fn(), data: () => ({}), exists: () => true});
|
|
73
|
+
}
|
|
74
|
+
return () => {};
|
|
75
|
+
})
|
|
76
|
+
}));
|
|
77
|
+
vi.mock('firebase/storage', () => ({
|
|
78
|
+
getStorage: vi.fn(() => ({})),
|
|
79
|
+
ref: vi.fn(),
|
|
80
|
+
listAll: vi.fn(() => Promise.resolve({ items: [], prefixes: [] })),
|
|
81
|
+
getDownloadURL: vi.fn(() => Promise.resolve('mock-url')),
|
|
82
|
+
getMetadata: vi.fn(() => Promise.resolve({ size: 1024, timeCreated: new Date().toISOString() }))
|
|
83
|
+
}));
|
|
84
|
+
|
|
85
|
+
describe('TemplateCalendar Component', () => {
|
|
86
|
+
it('renders without crashing', async () => {
|
|
87
|
+
// Wrap in standard application providers inside act to process async side effects and prevent warnings
|
|
88
|
+
await act(async () => {
|
|
89
|
+
render(
|
|
90
|
+
<BrowserRouter>
|
|
91
|
+
<AuthProvider>
|
|
92
|
+
<ThemeProvider>
|
|
93
|
+
{/* @ts-ignore */}
|
|
94
|
+
<TemplateCalendar />
|
|
95
|
+
</ThemeProvider>
|
|
96
|
+
</AuthProvider>
|
|
97
|
+
</BrowserRouter>
|
|
98
|
+
);
|
|
99
|
+
// Wait a tick to flush background state updates
|
|
100
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
// Check if the document has anything rendered without throwing
|
|
104
|
+
expect(document.body).toBeDefined();
|
|
105
|
+
});
|
|
106
|
+
});
|