ci: cypres test setup(#274)
* fix: font size broken * add first cypress test * save onboarding language * load language * get first test to work * update command * install pnpm * update workflow * install * update * test * increase timeout * another update * update 2 * update 3 * upsdada 4 * sfgsfgf 5 * add def supabase url * fix supabase issue * add ci * fix ci * update .env.example * update port * tired * prepare * preview * this is it * ????? * 99999900 * fix log issue * ci * nkkh * ===== * 200000
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
export default {
|
||||
supabaseConfig: {
|
||||
bucketPath: 'https://tapaozmyjsuykgerrfkt.supabase.in/storage/v1/object/sign/'
|
||||
}
|
||||
};
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
{:else if hasAtLeastOneTranslation}
|
||||
<Box className="text-center">
|
||||
<AlignBoxTopLeft class="carbon-icon" size={32} />
|
||||
<h3 class="text-md font-normal dark:text-white py-2">
|
||||
<h3 class="text-lg font-normal dark:text-white py-2">
|
||||
{$t('course.navItem.lessons.materials.no_translation')}
|
||||
</h3>
|
||||
</Box>
|
||||
|
||||
@@ -83,7 +83,6 @@
|
||||
const content = $lessonByTranslation[lessonId][locale];
|
||||
|
||||
if (typeof localeExists[locale] === 'undefined') {
|
||||
console.log('find the language');
|
||||
const { data } = await supabase
|
||||
.from('lesson_language')
|
||||
.select(`id`)
|
||||
@@ -142,9 +141,6 @@
|
||||
materials: LessonPage['materials'],
|
||||
translation: Record<LOCALE, string>
|
||||
) {
|
||||
console.log('isMaterialsEmpty', {
|
||||
translation
|
||||
});
|
||||
const { slide_url, videos, note } = materials;
|
||||
|
||||
return (
|
||||
@@ -249,11 +245,10 @@
|
||||
|
||||
isSaving = true;
|
||||
timeoutId = setTimeout(async () => {
|
||||
console.log('autosaving');
|
||||
const { error } = await saveLesson(updatedMaterials);
|
||||
|
||||
if (error) {
|
||||
console.log('error saving lesson', error);
|
||||
console.error('error saving lesson', error);
|
||||
snackbar.error('snackbar.materials.apology');
|
||||
}
|
||||
isSaving = false;
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
import { PUBLIC_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_URL } from '$env/static/public';
|
||||
import type { ConfigType } from '$lib/utils/types/config';
|
||||
|
||||
export const config: ConfigType = {
|
||||
supabaseConfig: {
|
||||
url: PUBLIC_SUPABASE_URL || 'http://localhost:54321',
|
||||
anonKey: PUBLIC_SUPABASE_ANON_KEY || 'anon-key'
|
||||
}
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
import { PUBLIC_SUPABASE_URL } from '$env/static/public';
|
||||
import { PRIVATE_SUPABASE_SERVICE_ROLE } from '$env/static/private';
|
||||
import { createClient, SupabaseClient } from '@supabase/supabase-js';
|
||||
import { config } from '$lib/config';
|
||||
|
||||
export let supabase: SupabaseClient;
|
||||
|
||||
@@ -12,7 +12,7 @@ export let supabase: SupabaseClient;
|
||||
export const getServerSupabase = () => {
|
||||
if (supabase) return supabase;
|
||||
|
||||
supabase = createClient(PUBLIC_SUPABASE_URL, PRIVATE_SUPABASE_SERVICE_ROLE, {
|
||||
supabase = createClient(config.supabaseConfig.url, PRIVATE_SUPABASE_SERVICE_ROLE || '', {
|
||||
auth: {
|
||||
persistSession: false,
|
||||
autoRefreshToken: false,
|
||||
|
||||
@@ -1,17 +1,10 @@
|
||||
import { PUBLIC_SUPABASE_ANON_KEY, PUBLIC_SUPABASE_URL } from '$env/static/public';
|
||||
import { createClient, SupabaseClient } from '@supabase/supabase-js';
|
||||
import type { ConfigType } from '../types';
|
||||
import { config } from '$lib/config';
|
||||
|
||||
export let supabase: SupabaseClient;
|
||||
|
||||
export const getSupabase = (config?: ConfigType) => {
|
||||
export const getSupabase = () => {
|
||||
if (supabase) return supabase;
|
||||
config = {
|
||||
supabaseConfig: {
|
||||
url: PUBLIC_SUPABASE_URL || '',
|
||||
anonKey: PUBLIC_SUPABASE_ANON_KEY || ''
|
||||
}
|
||||
};
|
||||
|
||||
supabase = createClient(config.supabaseConfig.url, config.supabaseConfig.anonKey);
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import { getCurrentOrg } from '$lib/utils/services/org';
|
||||
import { getSupabase, supabase } from '$lib/utils/functions/supabase';
|
||||
import { loadTranslations } from '$lib/utils/functions/translations';
|
||||
import type { CurrentOrg } from '$lib/utils/types/org';
|
||||
import { PRIVATE_APP_SUBDOMAINS } from '$env/static/private';
|
||||
|
||||
if (!supabase) {
|
||||
getSupabase();
|
||||
@@ -32,6 +33,8 @@ export const load = async ({ url, cookies }): Promise<LoadOutput> => {
|
||||
const matches = url.host.match(/([a-z 0-9 -]+).*classroomio[.]com/);
|
||||
const subdomain = matches?.[1] ?? '';
|
||||
|
||||
const isDev = dev || url.host.includes('localhost');
|
||||
|
||||
if (!url.host.includes('.classroomio.com') && !url.host.includes('localhost')) {
|
||||
// TODO: We can verify if custom domain here
|
||||
return response;
|
||||
@@ -43,14 +46,13 @@ export const load = async ({ url, cookies }): Promise<LoadOutput> => {
|
||||
response.isOrgSite = debugMode || answer;
|
||||
response.orgSiteName = debugMode ? _orgSiteName : subdomain;
|
||||
response.org = (await getCurrentOrg(response.orgSiteName, true)) || null;
|
||||
|
||||
|
||||
if (!response.org && !dev) {
|
||||
if (!response.org && !isDev) {
|
||||
throw redirect(307, 'https://app.classroomio.com/404?type=org');
|
||||
}
|
||||
} else if (subdomain === 'play' || debugPlay === 'true') {
|
||||
response.skipAuth = true;
|
||||
} else if (subdomain !== 'app' && !dev) {
|
||||
} else if (PRIVATE_APP_SUBDOMAINS.split(',').includes(subdomain) && !isDev) {
|
||||
throw redirect(307, 'https://app.classroomio.com');
|
||||
}
|
||||
|
||||
@@ -67,7 +69,7 @@ function getInitialLocale(): string {
|
||||
if (browser) {
|
||||
try {
|
||||
return window.navigator.language.split('-')[0];
|
||||
} catch(e) {
|
||||
} catch (e) {
|
||||
return 'en';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,11 +218,8 @@
|
||||
$globalStore.isDark = localStorage.getItem('mode') === 'dark';
|
||||
toggleBodyByMode($globalStore.isDark);
|
||||
|
||||
const theme = localStorage.getItem('theme');
|
||||
if (data.isOrgSite && data.org?.theme) {
|
||||
setTheme(data.org?.theme);
|
||||
} else if (theme) {
|
||||
setTheme(theme);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
triggerSendEmail,
|
||||
NOTIFICATION_NAME
|
||||
} from '$lib/utils/services/notification/notification';
|
||||
import { t } from '$lib/utils/functions/translations';
|
||||
import { handleLocaleChange, t } from '$lib/utils/functions/translations';
|
||||
import { LOCALE } from '$lib/utils/types';
|
||||
|
||||
interface OnboardingField {
|
||||
fullname?: string;
|
||||
@@ -201,6 +202,13 @@
|
||||
if (fields.fullname) {
|
||||
$profile.fullname = fields.fullname;
|
||||
}
|
||||
if (fields.locale) {
|
||||
$profile.locale = fields.locale;
|
||||
|
||||
if (fields.locale !== LOCALE.EN) {
|
||||
handleLocaleChange(fields.locale);
|
||||
}
|
||||
}
|
||||
triggerSendEmail(NOTIFICATION_NAME.VERIFY_EMAIL, {
|
||||
to: $profile.email,
|
||||
profileId: $profile.id,
|
||||
@@ -286,7 +294,6 @@
|
||||
isRequired
|
||||
/>
|
||||
</div>
|
||||
|
|
||||
{:else}
|
||||
<!-- Goal/Source Question -->
|
||||
<div id="goal-question" class="flex items-center flex-col mb-6">
|
||||
|
||||
Reference in New Issue
Block a user