diff --git a/README.md b/README.md index 77f0a63..5c00ee4 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,6 @@ -# Manual Firebase Build & Deploy -`npm run build && firebase deploy` - -# Run Vue.js Unit Tests -`npm run test:unit` - -# Run Firebase Integration Tests -`cd functions && npm run test` - -# Run Locally +# Irish Rail Tracker +## Setup +### Local Installation 1. Ensure you have Java 11 or greater installed. 2. Run `npm install` in the traintracker directory. 3. Run `npm install` in the functions directory. @@ -18,9 +11,17 @@ You will need to click the "Populate Database" and "Fetch Data" buttons to get d To kill the npm process do `CTRL + C` in your terminal. To kill the firebase emulators run `fg` to bring the process to the foreground, then do `CTRL + C` -# Links +### Manual Firebase Deployment +`npm run build && firebase deploy` + +## Testing +### Vue.js Unit Tests +`npm run test:unit` + +## Firebase Integration Tests +`cd functions && npm run test` + +## Links Deployed Site: [irishrailtracker.web.app](https://irishrailtracker.web.app/) - Jira: [trainenthusiasts.atlassian.net](https://trainenthusiasts.atlassian.net/jira/software/projects/TE/boards/1) - -GitHub: [github.com/0hAodha/traintracker](https://github.com/0hAodha/traintracker) +GitHub: [github.com/0hAodha/traintracker](https://github.com/0hAodha/traintracker) \ No newline at end of file diff --git a/functions/test/index.test.js b/functions/test/index.test.js index 452082b..fbe0955 100644 --- a/functions/test/index.test.js +++ b/functions/test/index.test.js @@ -18,6 +18,12 @@ describe('Firebase cloud function tests', function() { expect(result.body.data[0]).haveOwnProperty('TrainCode'); expect(result.body.data[0]).haveOwnProperty('TrainDate'); expect(result.body.data[0]).haveOwnProperty('TrainType'); + expect(result.body.data[0]).haveOwnProperty('Destination'); + expect(result.body.data[0]).haveOwnProperty('Origin'); + + if (result.body.data[0]["TrainStatus"] != "N") { + expect(result.body.data[0]).haveOwnProperty('Punctuality'); + } }), this.timeout(100000); diff --git a/src/components/TrainSidebar.vue b/src/components/TrainSidebar.vue index 2dbd71e..a2994f9 100644 --- a/src/components/TrainSidebar.vue +++ b/src/components/TrainSidebar.vue @@ -53,14 +53,14 @@
-

Public Message:
Public Message: {{ store.selectedTrain["PublicMessage"][0] }}

+

Public Message:
{{ store.selectedTrain["PublicMessage"][0] }}

-

Public Message:
Public Message: {{ store.selectedTrain["PublicMessage"][0] }}

+

Public Message:
{{ store.selectedTrain["PublicMessage"][0] }}

diff --git a/src/pages/AccountPage.vue b/src/pages/AccountPage.vue index 0817afa..9076032 100644 --- a/src/pages/AccountPage.vue +++ b/src/pages/AccountPage.vue @@ -204,7 +204,6 @@ export default { + \ No newline at end of file diff --git a/src/pages/MapPage.vue b/src/pages/MapPage.vue index b5e3f8a..f0037b0 100644 --- a/src/pages/MapPage.vue +++ b/src/pages/MapPage.vue @@ -16,7 +16,7 @@
- +

@@ -33,7 +33,7 @@
- +

@@ -177,7 +177,7 @@ export default { zoom: 7, rotation: 0, minZoom:6, - maxZoom:10, + maxZoom:13, showTrains: [], showStations: [], diff --git a/src/pages/SignUpPage.vue b/src/pages/SignUpPage.vue index fd7797f..23f0248 100644 --- a/src/pages/SignUpPage.vue +++ b/src/pages/SignUpPage.vue @@ -5,14 +5,14 @@

Sign Up

Email Address

- +

Password (6+ characters)

show
- - + + Already have an account?
diff --git a/tests/unit/404Page.spec.js b/tests/unit/404Page.spec.js new file mode 100644 index 0000000..9bbb815 --- /dev/null +++ b/tests/unit/404Page.spec.js @@ -0,0 +1,20 @@ +import { expect } from 'chai' +import { shallowMount, RouterLinkStub } from '@vue/test-utils' +import page404 from '@/pages/404Page.vue' + +describe('404Page.vue Component Test', () => { + let wrapper; + beforeEach(() => { + wrapper = shallowMount(page404, { + global: { + stubs: { + 'router-link': RouterLinkStub + } + } + }) + }) + + it('Mount test', () => { + expect(wrapper.text()).to.include('404'); + }) +}) \ No newline at end of file diff --git a/tests/unit/LoginPage.spec.js b/tests/unit/LoginPage.spec.js new file mode 100644 index 0000000..8d93a03 --- /dev/null +++ b/tests/unit/LoginPage.spec.js @@ -0,0 +1,35 @@ +import { expect } from 'chai' +import { shallowMount, RouterLinkStub } from '@vue/test-utils' +import { nextTick } from 'vue' +import LoginPage from '@/pages/LoginPage.vue' + +describe('LoginPage.vue Component Test', () => { + let wrapper; + beforeEach(() => { + wrapper = shallowMount(LoginPage, { + global: { + stubs: { + 'router-link': RouterLinkStub + } + } + }) + }) + + it('Mount test', () => { + expect(wrapper.text()).to.include('Login'); + expect(wrapper.text()).to.include('Email Address'); + expect(wrapper.text()).to.include('Password'); + expect(wrapper.text()).to.include('Forgot password?'); + expect(wrapper.text()).to.include('Don\'t have an account?'); + }), + + it('Forgot password test', () => { + wrapper.setData({forgotPassword: true}) + nextTick(() => { + expect(wrapper.text()).to.include('Forgot Password'); + expect(wrapper.text()).to.include('Email Address'); + expect(wrapper.text()).to.include('Send Reset Email'); + expect(wrapper.text()).to.include('Go Back'); + }) + }) +}) \ No newline at end of file diff --git a/tests/unit/Navbar.spec.js b/tests/unit/Navbar.spec.js index 4397439..e6a8800 100644 --- a/tests/unit/Navbar.spec.js +++ b/tests/unit/Navbar.spec.js @@ -36,7 +36,4 @@ describe('Navbar.vue Component Test', () => { expect(wrapper.text()).to.include('Logout'); }) }) -}) - - -// wrapper.find('input[type=checkbox]').setChecked(); \ No newline at end of file +}) \ No newline at end of file diff --git a/tests/unit/SignUpPage.spec.js b/tests/unit/SignUpPage.spec.js new file mode 100644 index 0000000..8732c84 --- /dev/null +++ b/tests/unit/SignUpPage.spec.js @@ -0,0 +1,23 @@ +import { expect } from 'chai' +import { shallowMount, RouterLinkStub } from '@vue/test-utils' +import SignUpPage from '@/pages/SignUpPage.vue' + +describe('SignUpPage.vue Component Test', () => { + let wrapper; + beforeEach(() => { + wrapper = shallowMount(SignUpPage, { + global: { + stubs: { + 'router-link': RouterLinkStub + } + } + }) + }) + + it('Mount test', async() => { + expect(wrapper.text()).to.include('Sign Up'); + expect(wrapper.text()).to.include('Email Address'); + expect(wrapper.text()).to.include('Password'); + expect(wrapper.text()).to.include('Already have an account?'); + }) +}) \ No newline at end of file