diff --git a/eslint.config.mjs b/eslint.config.mjs
index 187ec70..73adedc 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -24,6 +24,8 @@ export default [
"import/extensions": "off",
// This is a web app
"no-console": "off",
+ // Sometimes a component class will be empty. Not all components require logic.
+ "@typescript-eslint/no-extraneous-class": "off",
}
},
{
@@ -42,6 +44,8 @@ export default [
"import/extensions": "off",
// We turn this off because the test bed has weak types.
"@typescript-eslint/consistent-type-assertions": "off",
+ // This one allows us to define test globals.
+ "@typescript-eslint/init-declarations": "off",
}
}
]
\ No newline at end of file
diff --git a/src/app/about/about.css b/src/app/about/about.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/about/about.html b/src/app/about/about.html
new file mode 100644
index 0000000..6094aa9
--- /dev/null
+++ b/src/app/about/about.html
@@ -0,0 +1 @@
+
about works!
diff --git a/src/app/about/about.spec.ts b/src/app/about/about.spec.ts
new file mode 100644
index 0000000..c35292a
--- /dev/null
+++ b/src/app/about/about.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { About } from "./about";
+
+describe("about", () => {
+ let component: About;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ About ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(About);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/about/about.ts b/src/app/about/about.ts
new file mode 100644
index 0000000..d778c6a
--- /dev/null
+++ b/src/app/about/about.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the about page.
+ */
+@Component({
+ imports: [],
+ selector: "app-about",
+ styleUrl: "./about.css",
+ templateUrl: "./about.html",
+})
+export class About {
+
+}
diff --git a/src/app/bulletin/bulletin.css b/src/app/bulletin/bulletin.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/bulletin/bulletin.html b/src/app/bulletin/bulletin.html
new file mode 100644
index 0000000..3f7fb8f
--- /dev/null
+++ b/src/app/bulletin/bulletin.html
@@ -0,0 +1 @@
+bulletin works!
diff --git a/src/app/bulletin/bulletin.spec.ts b/src/app/bulletin/bulletin.spec.ts
new file mode 100644
index 0000000..6bb1110
--- /dev/null
+++ b/src/app/bulletin/bulletin.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Bulletin } from "./bulletin";
+
+describe("bulletin", () => {
+ let component: Bulletin;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Bulletin ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Bulletin);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/bulletin/bulletin.ts b/src/app/bulletin/bulletin.ts
new file mode 100644
index 0000000..0044d09
--- /dev/null
+++ b/src/app/bulletin/bulletin.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the bulletin page.
+ */
+@Component({
+ imports: [],
+ selector: "app-bulletin",
+ styleUrl: "./bulletin.css",
+ templateUrl: "./bulletin.html",
+})
+export class Bulletin {
+
+}
diff --git a/src/app/disclaimer/disclaimer.css b/src/app/disclaimer/disclaimer.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/disclaimer/disclaimer.html b/src/app/disclaimer/disclaimer.html
new file mode 100644
index 0000000..cb054f2
--- /dev/null
+++ b/src/app/disclaimer/disclaimer.html
@@ -0,0 +1 @@
+disclaimer works!
diff --git a/src/app/disclaimer/disclaimer.spec.ts b/src/app/disclaimer/disclaimer.spec.ts
new file mode 100644
index 0000000..7199995
--- /dev/null
+++ b/src/app/disclaimer/disclaimer.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Disclaimer } from "./disclaimer";
+
+describe("disclaimer", () => {
+ let component: Disclaimer;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Disclaimer ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Disclaimer);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/disclaimer/disclaimer.ts b/src/app/disclaimer/disclaimer.ts
new file mode 100644
index 0000000..9842aa6
--- /dev/null
+++ b/src/app/disclaimer/disclaimer.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the disclaimer page.
+ */
+@Component({
+ imports: [],
+ selector: "app-disclaimer",
+ styleUrl: "./disclaimer.css",
+ templateUrl: "./disclaimer.html",
+})
+export class Disclaimer {
+
+}
diff --git a/src/app/faq/faq.css b/src/app/faq/faq.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/faq/faq.html b/src/app/faq/faq.html
new file mode 100644
index 0000000..7ccd1b6
--- /dev/null
+++ b/src/app/faq/faq.html
@@ -0,0 +1 @@
+faq works!
diff --git a/src/app/faq/faq.spec.ts b/src/app/faq/faq.spec.ts
new file mode 100644
index 0000000..53302e9
--- /dev/null
+++ b/src/app/faq/faq.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Faq } from "./faq";
+
+describe("faq", () => {
+ let component: Faq;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Faq ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Faq);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/faq/faq.ts b/src/app/faq/faq.ts
new file mode 100644
index 0000000..fbc819e
--- /dev/null
+++ b/src/app/faq/faq.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the FAQ page.
+ */
+@Component({
+ imports: [],
+ selector: "app-faq",
+ styleUrl: "./faq.css",
+ templateUrl: "./faq.html",
+})
+export class Faq {
+
+}
diff --git a/src/app/footer/footer.css b/src/app/footer/footer.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/footer/footer.html b/src/app/footer/footer.html
new file mode 100644
index 0000000..28c0d7d
--- /dev/null
+++ b/src/app/footer/footer.html
@@ -0,0 +1 @@
+footer works!
diff --git a/src/app/footer/footer.spec.ts b/src/app/footer/footer.spec.ts
new file mode 100644
index 0000000..a3c3a89
--- /dev/null
+++ b/src/app/footer/footer.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Footer } from "./footer";
+
+describe("footer", () => {
+ let component: Footer;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Footer ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Footer);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/footer/footer.ts b/src/app/footer/footer.ts
new file mode 100644
index 0000000..2128a53
--- /dev/null
+++ b/src/app/footer/footer.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the footer.
+ */
+@Component({
+ imports: [],
+ selector: "app-footer",
+ styleUrl: "./footer.css",
+ templateUrl: "./footer.html",
+})
+export class Footer {
+
+}
diff --git a/src/app/handbook/handbook.css b/src/app/handbook/handbook.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/handbook/handbook.html b/src/app/handbook/handbook.html
new file mode 100644
index 0000000..9dbf939
--- /dev/null
+++ b/src/app/handbook/handbook.html
@@ -0,0 +1 @@
+handbook works!
diff --git a/src/app/handbook/handbook.spec.ts b/src/app/handbook/handbook.spec.ts
new file mode 100644
index 0000000..43a15c2
--- /dev/null
+++ b/src/app/handbook/handbook.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Handbook } from "./handbook";
+
+describe("handbook", () => {
+ let component: Handbook;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Handbook ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Handbook);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/handbook/handbook.ts b/src/app/handbook/handbook.ts
new file mode 100644
index 0000000..b6a8524
--- /dev/null
+++ b/src/app/handbook/handbook.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the handbook page.
+ */
+@Component({
+ imports: [],
+ selector: "app-handbook",
+ styleUrl: "./handbook.css",
+ templateUrl: "./handbook.html",
+})
+export class Handbook {
+
+}
diff --git a/src/app/home/home.css b/src/app/home/home.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/home/home.html b/src/app/home/home.html
new file mode 100644
index 0000000..5f2c53f
--- /dev/null
+++ b/src/app/home/home.html
@@ -0,0 +1 @@
+home works!
diff --git a/src/app/home/home.spec.ts b/src/app/home/home.spec.ts
new file mode 100644
index 0000000..d6847e9
--- /dev/null
+++ b/src/app/home/home.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Home } from "./home";
+
+describe("home", () => {
+ let component: Home;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Home ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Home);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/home/home.ts b/src/app/home/home.ts
new file mode 100644
index 0000000..24d0628
--- /dev/null
+++ b/src/app/home/home.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the home page.
+ */
+@Component({
+ imports: [],
+ selector: "app-home",
+ styleUrl: "./home.css",
+ templateUrl: "./home.html",
+})
+export class Home {
+
+}
diff --git a/src/app/nav/nav.css b/src/app/nav/nav.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/nav/nav.html b/src/app/nav/nav.html
new file mode 100644
index 0000000..f23d834
--- /dev/null
+++ b/src/app/nav/nav.html
@@ -0,0 +1 @@
+nav works!
diff --git a/src/app/nav/nav.spec.ts b/src/app/nav/nav.spec.ts
new file mode 100644
index 0000000..b44bfc7
--- /dev/null
+++ b/src/app/nav/nav.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Nav } from "./nav";
+
+describe("nav", () => {
+ let component: Nav;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Nav ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Nav);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/nav/nav.ts b/src/app/nav/nav.ts
new file mode 100644
index 0000000..a1ad6f1
--- /dev/null
+++ b/src/app/nav/nav.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the navigation bar.
+ */
+@Component({
+ imports: [],
+ selector: "app-nav",
+ styleUrl: "./nav.css",
+ templateUrl: "./nav.html",
+})
+export class Nav {
+
+}
diff --git a/src/app/reviews/reviews.css b/src/app/reviews/reviews.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/reviews/reviews.html b/src/app/reviews/reviews.html
new file mode 100644
index 0000000..2a1cd0b
--- /dev/null
+++ b/src/app/reviews/reviews.html
@@ -0,0 +1 @@
+reviews works!
diff --git a/src/app/reviews/reviews.spec.ts b/src/app/reviews/reviews.spec.ts
new file mode 100644
index 0000000..18f7690
--- /dev/null
+++ b/src/app/reviews/reviews.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Reviews } from "./reviews";
+
+describe("reviews", () => {
+ let component: Reviews;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Reviews ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Reviews);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/reviews/reviews.ts b/src/app/reviews/reviews.ts
new file mode 100644
index 0000000..25818a2
--- /dev/null
+++ b/src/app/reviews/reviews.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the reviews page.
+ */
+@Component({
+ imports: [],
+ selector: "app-reviews",
+ styleUrl: "./reviews.css",
+ templateUrl: "./reviews.html",
+})
+export class Reviews {
+
+}
diff --git a/src/app/staff/staff.css b/src/app/staff/staff.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/staff/staff.html b/src/app/staff/staff.html
new file mode 100644
index 0000000..f9500ec
--- /dev/null
+++ b/src/app/staff/staff.html
@@ -0,0 +1 @@
+staff works!
diff --git a/src/app/staff/staff.spec.ts b/src/app/staff/staff.spec.ts
new file mode 100644
index 0000000..372760f
--- /dev/null
+++ b/src/app/staff/staff.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Staff } from "./staff";
+
+describe("staff", () => {
+ let component: Staff;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Staff ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Staff);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/staff/staff.ts b/src/app/staff/staff.ts
new file mode 100644
index 0000000..93927c1
--- /dev/null
+++ b/src/app/staff/staff.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the staff page.
+ */
+@Component({
+ imports: [],
+ selector: "app-staff",
+ styleUrl: "./staff.css",
+ templateUrl: "./staff.html",
+})
+export class Staff {
+
+}
diff --git a/src/app/ticker/ticker.css b/src/app/ticker/ticker.css
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/ticker/ticker.html b/src/app/ticker/ticker.html
new file mode 100644
index 0000000..dcef208
--- /dev/null
+++ b/src/app/ticker/ticker.html
@@ -0,0 +1 @@
+ticker works!
diff --git a/src/app/ticker/ticker.spec.ts b/src/app/ticker/ticker.spec.ts
new file mode 100644
index 0000000..92e9f47
--- /dev/null
+++ b/src/app/ticker/ticker.spec.ts
@@ -0,0 +1,29 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { type ComponentFixture, TestBed } from "@angular/core/testing";
+import { describe, beforeEach, it, expect } from "vitest";
+import { Ticker } from "./ticker";
+
+describe("ticker", () => {
+ let component: Ticker;
+ let fixture: ComponentFixture;
+
+ beforeEach(async() => {
+ await TestBed.configureTestingModule({
+ imports: [ Ticker ],
+ }).
+ compileComponents();
+
+ fixture = TestBed.createComponent(Ticker);
+ component = fixture.componentInstance;
+ await fixture.whenStable();
+ });
+
+ it("should create", () => {
+ expect.assertions(1);
+ expect(component, "did not compile").toBeTruthy();
+ });
+});
diff --git a/src/app/ticker/ticker.ts b/src/app/ticker/ticker.ts
new file mode 100644
index 0000000..2ba7722
--- /dev/null
+++ b/src/app/ticker/ticker.ts
@@ -0,0 +1,19 @@
+/**
+ * @copyright NHCarrigan
+ * @license Naomi's Public License
+ * @author Naomi Carrigan
+ */
+import { Component } from "@angular/core";
+
+/**
+ * Renders the ticker.
+ */
+@Component({
+ imports: [],
+ selector: "app-ticker",
+ styleUrl: "./ticker.css",
+ templateUrl: "./ticker.html",
+})
+export class Ticker {
+
+}