🏡 index : ~doyle/chartered.git

author Jordan Doyle <jordan@doyle.la> 2022-09-09 0:39:43.0 +01:00:00
committer Jordan Doyle <jordan@doyle.la> 2022-09-09 2:06:28.0 +01:00:00
commit
6fd08cd2d79daa496213d49eb459a27ed5069719 [patch]
tree
60a75a175ffbea5bd2b201bde80eacb45cefd9f7
parent
f23d2fe43191aa42f3b76bcd18a3850f89cb20be
download
6fd08cd2d79daa496213d49eb459a27ed5069719.tar.gz

Set page titles on frontend



Diff

 chartered-frontend/src/app.d.ts                                               |  4 +++-
 chartered-frontend/tests/test.ts                                              | 14 ++++++++------
 chartered-frontend/src/routes/+layout.svelte                                  | 14 ++++++++++++++
 chartered-frontend/src/routes/(authed)/search/+page.ts                        |  5 +++++
 chartered-frontend/src/routes/(authed)/ssh-keys/+page.ts                      |  5 +++++
 chartered-frontend/src/routes/(authed)/crates/[organisation]/+page.ts         |  9 +++++++++
 chartered-frontend/src/routes/(authed)/organisations/create/+page.ts          |  5 +++++
 chartered-frontend/src/routes/(authed)/organisations/list/+page.ts            |  5 +++++
 chartered-frontend/src/routes/(authed)/sessions/list/+page.ts                 |  5 +++++
 chartered-frontend/src/routes/(authed)/users/[uuid]/+page.ts                  |  5 +++++
 chartered-frontend/src/routes/(unauthed)/auth/login/+page.ts                  |  5 +++++
 chartered-frontend/src/routes/(unauthed)/auth/register/+page.ts               |  5 +++++
 chartered-frontend/src/routes/(authed)/crates/[organisation]/[crate]/+page.ts | 10 ++++++++++
 13 files changed, 83 insertions(+), 8 deletions(-)

diff --git a/chartered-frontend/src/app.d.ts b/chartered-frontend/src/app.d.ts
index 4ce2990..55be883 100644
--- a/chartered-frontend/src/app.d.ts
+++ a/chartered-frontend/src/app.d.ts
@@ -1,8 +1,10 @@
// See https://kit.svelte.dev/docs/types#app
// for information about these interfaces
// and what to do when importing types
declare namespace App {
    // interface Locals {}
    // interface PageData {}
    interface PageData {
        title?: string;
    }
    // interface Platform {}
}
diff --git a/chartered-frontend/tests/test.ts b/chartered-frontend/tests/test.ts
index 8878cfb..60ac5d3 100644
--- a/chartered-frontend/tests/test.ts
+++ a/chartered-frontend/tests/test.ts
@@ -8,7 +8,7 @@

test('register button takes user to register page', async ({ page }) => {
    await page.goto('/');
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();
    await expect(page).toHaveURL(/.*register/);
    expect(await page.textContent('h1')).toBe('chartered ✈️');
    expect(await page.textContent('button')).toBe('Register');
@@ -20,12 +20,12 @@

    // navigate to register page
    await page.goto('/');
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();

    // register user
    await page.locator('input[id="username"]').fill(username);
    await page.locator('input[id="password"]').fill(password);
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();

    // ensure there were no errors
    await expect(page.locator('[role="alert"]')).toHaveCount(0);
@@ -49,17 +49,17 @@
    await page.goto('/');

    // create first user account
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();
    await page.locator('input[id="username"]').fill(username1);
    await page.locator('input[id="password"]').fill(password);
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();
    await expect(page).toHaveURL(/.*login/);

    // create second user account that we'll add to the organisation
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();
    await page.locator('input[id="username"]').fill(username2);
    await page.locator('input[id="password"]').fill(password);
    await page.locator('text=Register').click();
    await page.locator('button:has-text("Register")').click();
    await expect(page).toHaveURL(/.*login/);

    // login to first account
diff --git a/chartered-frontend/src/routes/+layout.svelte b/chartered-frontend/src/routes/+layout.svelte
index 1ad119e..b027795 100644
--- a/chartered-frontend/src/routes/+layout.svelte
+++ a/chartered-frontend/src/routes/+layout.svelte
@@ -1,5 +1,19 @@
<script type="typescript">
    import { page } from '$app/stores';
    import '../app.pcss';

    const defaultPageTitle = 'Chartered';

    let pageTitle: string;
    $: if ($page.data.title) {
        pageTitle = `${$page.data.title} - ${defaultPageTitle}`;
    } else {
        pageTitle = defaultPageTitle;
    }
</script>

<svelte:head>
    <title>{pageTitle || defaultPageTitle}</title>
</svelte:head>

<slot />
diff --git a/chartered-frontend/src/routes/(authed)/search/+page.ts b/chartered-frontend/src/routes/(authed)/search/+page.ts
new file mode 100644
index 0000000..ef72585 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/search/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Search',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/ssh-keys/+page.ts b/chartered-frontend/src/routes/(authed)/ssh-keys/+page.ts
new file mode 100644
index 0000000..41f5fe5 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/ssh-keys/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'SSH Keys',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/crates/[organisation]/+page.ts b/chartered-frontend/src/routes/(authed)/crates/[organisation]/+page.ts
new file mode 100644
index 0000000..61178fc 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/crates/[organisation]/+page.ts
@@ -1,0 +1,9 @@
interface Params {
    organisation: string;
}

export function load({ params }: { params: Params }): App.PageData {
    return {
        title: params.organisation,
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/organisations/create/+page.ts b/chartered-frontend/src/routes/(authed)/organisations/create/+page.ts
new file mode 100644
index 0000000..cc3723b 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/organisations/create/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Create Organisation',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/organisations/list/+page.ts b/chartered-frontend/src/routes/(authed)/organisations/list/+page.ts
new file mode 100644
index 0000000..c8dc3dd 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/organisations/list/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Organisations',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/sessions/list/+page.ts b/chartered-frontend/src/routes/(authed)/sessions/list/+page.ts
new file mode 100644
index 0000000..80b1bec 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/sessions/list/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Sessions',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/users/[uuid]/+page.ts b/chartered-frontend/src/routes/(authed)/users/[uuid]/+page.ts
new file mode 100644
index 0000000..ffafc64 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/users/[uuid]/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'User',
    };
}
diff --git a/chartered-frontend/src/routes/(unauthed)/auth/login/+page.ts b/chartered-frontend/src/routes/(unauthed)/auth/login/+page.ts
new file mode 100644
index 0000000..4cc3b56 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(unauthed)/auth/login/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Login',
    };
}
diff --git a/chartered-frontend/src/routes/(unauthed)/auth/register/+page.ts b/chartered-frontend/src/routes/(unauthed)/auth/register/+page.ts
new file mode 100644
index 0000000..1b2c093 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(unauthed)/auth/register/+page.ts
@@ -1,0 +1,5 @@
export function load(): App.PageData {
    return {
        title: 'Register',
    };
}
diff --git a/chartered-frontend/src/routes/(authed)/crates/[organisation]/[crate]/+page.ts b/chartered-frontend/src/routes/(authed)/crates/[organisation]/[crate]/+page.ts
new file mode 100644
index 0000000..681ff59 100644
--- /dev/null
+++ a/chartered-frontend/src/routes/(authed)/crates/[organisation]/[crate]/+page.ts
@@ -1,0 +1,10 @@
interface Params {
    organisation: string;
    crate: string;
}

export function load({ params }: { params: Params }): App.PageData {
    return {
        title: `${params.organisation}/${params.crate}`,
    };
}