Skip to content

Commit

Permalink
Merge pull request #58 from alexlee-dev/v1.2.0
Browse files Browse the repository at this point in the history
📦 v1.2.0
  • Loading branch information
Alex Lee authored Aug 1, 2020
2 parents 8fe6514 + 5bb3dd3 commit d97c9c8
Show file tree
Hide file tree
Showing 96 changed files with 3,470 additions and 2,171 deletions.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.2.0] - 2020-07-31

### 💻 Jobs on DB

### Added

### Changed

- Details Side Link icons styling
- Moved away from bare `CSS` and implement `styled-components` instead - [#39](https://github.com/alexlee-dev/gh-jobs/issues/39)
- Jobs are now stored on the database - [#40](https://github.com/alexlee-dev/gh-jobs/issues/40)
- Notifications now use `react-toastify` - [#36](https://github.com/alexlee-dev/gh-jobs/issues/36)
- Searches where possible, will use the database instead of the GitHub Jobs API - [#48](https://github.com/alexlee-dev/gh-jobs/issues/48)
- The `Details` page now makes a request to the BE for job details - [#51](https://github.com/alexlee-dev/gh-jobs/issues/51)
- Going to the old domain should now route you to the new domain - [#46](https://github.com/alexlee-dev/gh-jobs/issues/46)
- `savedJobs` is now an array of `id`'s instead of an array of the entire `Job` object - [#55](https://github.com/alexlee-dev/gh-jobs/issues/5)

### Removed

### Fixed

- Ability to return to Profile Display from viewing your saved jobs - [#56](https://github.com/alexlee-dev/gh-jobs/issues/56)

## [1.1.1] - 2020-07-23

### 🖼️ Assets Fix
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,10 @@ View [my solution](https://devchallenges.io/solutions/Lwb0aAViU0LzUKL6kscT) on D
- [react-dom](https://www.npmjs.com/package/react-dom) - A declarative, efficient, and flexible JavaScript library for building user interfaces.
- [react-redux](https://react-redux.js.org/) - Official React bindings for Redux.
- [react-router-dom](https://reactrouter.com/) - Declarative routing for React.
- [react-toastify](https://fkhadra.github.io/react-toastify/) - React notification made easy 🚀!
- [redux](https://redux.js.org/) - Predictable state container for JavaScript apps.
- [redux-thunk](https://github.com/reduxjs/redux-thunk) - Thunk middleware for Redux.
- [styled-components](https://styled-components.com/) - Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅.
- [validator](https://github.com/validatorjs/validator.js) - String validation.

### DevDependencies
Expand Down
13 changes: 13 additions & 0 deletions cypress/fixtures/jobDetails.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"id": "f1884b46-ecb4-473c-81f5-08d9bf2ab3bb",
"type": "Full Time",
"url": "https://jobs.github.com/positions/f1884b46-ecb4-473c-81f5-08d9bf2ab3bb",
"created_at": "Thu Jul 16 12:03:19 UTC 2020",
"company": "Cool Company",
"company_url": "https://www.adswizz.com/",
"location": "Bucharest",
"title": "Cloud DevOps Engineer",
"description": "\u003cp\u003eFor our Global Operations team in Bucharest, located at the 35th floor in Sky Tower building (highest in Romania), we are hiring a Cloud DevOps Engineer.\u003c/p\u003e\n\u003cp\u003eAs a Cloud DevOps Engineer you will:\n– Be curious. You ask \"why\"?, you explore, you’re not afraid to blurt out your crazy idea\n– Code the infrastructure to act as designed\n– Improve the whole life-cycle of services from design, through deployment, operation and refinement\n– Maintain services once they are live by measuring and monitoring availability, latency and overall system health\n– Scale systems sustainably through mechanisms like automation, and evolve systems by pushing for changes that improve reliability and velocity\n– Practice sustainable incident response and blameless postmortems\n– Have an opinion on any/all of the following orchestration tools\n– Be an audiophile – Interested in all things audio including but not limited to: sound quality, streaming technologies and best bands of 21st century\u003c/p\u003e\n\u003cp\u003eWhat you bring to the team:\n– Bachelor Degree in Computer Science, Mathematics and Informatics or equivalent\n– At least 2 years of experience working on large-scale distributed systems\n– Experience running Linux-based production systems\n– Your thinking starts with the desire for high availability\n– Your love for the command line and scripting development\n– Experience with Amazon AWS services (EC2, S3, ELB, …)\n– Experience with or related technologies like Puppet, Ansible, Nagios, Grafana, Prometheus, HAProxy, NGinx, Apache, MySQL/MariaDB, Kubernetes, Kafka, Hadoop\n– CI/CD for both infrastructure and applications\u003c/p\u003e\n\u003cp\u003eOur offer (bonuses, benefits) – what’s in it for you:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCasual \u0026amp; friendly working environment with opportunities to impact the company with your ideas and involvement\u003c/li\u003e\n\u003cli\u003eWe have a start-up culture, product-centric, international/multi-cultural environment in each office and easy going communication style (even with Top Management)\u003c/li\u003e\n\u003cli\u003eTechnology diversity, interesting technical exposure in building the best ad-tech product on the market\u003c/li\u003e\n\u003cli\u003eFlexible working schedule and work-from-home option, within predefined rules\u003c/li\u003e\n\u003cli\u003eIndividual training budget to use as you like for career improvement\u003c/li\u003e\n\u003cli\u003eBonus system, on top of base salary, paid quarterly (for real, not just on paper)\u003c/li\u003e\n\u003cli\u003ePaid days off related to quarterly performance\u003c/li\u003e\n\u003cli\u003eDay off on your birthday (or within that month if it falls on the weekend)\u003c/li\u003e\n\u003cli\u003eSports bonus for activities such as gym, dances, yoga, etc.\u003c/li\u003e\n\u003cli\u003eWe encourage your healthy life-style with company paid enrollment for running or biking events\u003c/li\u003e\n\u003cli\u003eMeal tickets\u003c/li\u003e\n\u003cli\u003eGift cards for special events (e.g.: Easter, 1st of June, 8th of March, Christmas)\u003c/li\u003e\n\u003cli\u003eMedical coverage to keep you healthy\u003c/li\u003e\n\u003cli\u003eParking lots at Sky Tower\u003c/li\u003e\n\u003cli\u003eAdsWizz technical books library – you can propose new technical books to be bought by the company\u003c/li\u003e\n\u003cli\u003eBookster subscription\u003c/li\u003e\n\u003cli\u003eGood hardware devices (new laptops / Mac’s, displays etc.)\u003c/li\u003e\n\u003cli\u003eOffice relaxation areas (ping-pong, foosball etc.)\u003c/li\u003e\n\u003cli\u003eTeam buildings – each team goes on outings to keep that flame alive\u003c/li\u003e\n\u003cli\u003eAnnual Christmas party – the best company party you’ve ever seen\u003c/li\u003e\n\u003cli\u003eFamily events (e.g.: Halloween and Christmas party for employees’ kids)\u003c/li\u003e\n\u003cli\u003eThemed team events nights (casino night, boardgames night, scary movies night, etc.)\u003c/li\u003e\n\u003cli\u003eCatered lunch-time meetings\u003c/li\u003e\n\u003cli\u003eWe have weekly fresh fruit along with coffee and tea to keep that brain in top shape, orange juice \u0026amp; vending machine on premise as well\u003c/li\u003e\n\u003cli\u003eCSR activities (cake auctions, yard sales, blood donation campaigns at our office)\nWanna see how Belgian chocolate goes with technology? Come and join a community of the smartest folks you’ve ever met, that want to aim for the sky and want to use their skills to make a difference!\u003c/li\u003e\n\u003c/ul\u003e\n",
"how_to_apply": "\u003cp\u003e\u003ca href=\"https://www.adswizz.com/our-careers#!/job/4528257002?utm_source=github\u0026amp;utm_medium=smartdreamers\u0026amp;utm_campaign=July_2020_%7C_Cloud_DevOps_Engineer_%7C_Bucharest\"\u003ehttps://www.adswizz.com/our-careers#!/job/4528257002?utm_source=github\u0026amp;utm_medium=smartdreamers\u0026amp;utm_campaign=July_2020_%7C_Cloud_DevOps_Engineer_%7C_Bucharest\u003c/a\u003e\u003c/p\u003e\n",
"company_logo": "https://jobs.github.com/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBanFHIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--0903e54cc814013e7ce5b39a629717629e033a4e/Adswizz.png"
}
54 changes: 54 additions & 0 deletions cypress/fixtures/jobsSearch2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
[
{
"id": 1,
"type": "Full Time",
"url": "http://nbcnews.com/id/justo.html?ante=tellus&vestibulum=in&ante=sagittis&ipsum=dui&primis=vel&in=nisl&faucibus=duis&orci=ac&luctus=nibh&et=fusce&ultrices=lacus&posuere=purus&cubilia=aliquet&curae=at&duis=feugiat&faucibus=non&accumsan=pretium&odio=quis&curabitur=lectus&convallis=suspendisse&duis=potenti&consequat=in&dui=eleifend&nec=quam&nisi=a&volutpat=odio&eleifend=in&donec=hac&ut=habitasse&dolor=platea&morbi=dictumst&vel=maecenas&lectus=ut&in=massa&quam=quis&fringilla=augue&rhoncus=luctus&mauris=tincidunt&enim=nulla&leo=mollis",
"created_at": "2009-12-26T17:13:11Z",
"company": "Anderson LLC",
"company_url": "https://deliciousdays.com/consequat/lectus/in.png?nisl=nibh&aenean=fusce&lectus=lacus&pellentesque=purus&eget=aliquet&nunc=at&donec=feugiat&quis=non&orci=pretium&eget=quis&orci=lectus&vehicula=suspendisse&condimentum=potenti&curabitur=in&in=eleifend&libero=quam&ut=a&massa=odio&volutpat=in&convallis=hac&morbi=habitasse&odio=platea&odio=dictumst&elementum=maecenas&eu=ut&interdum=massa&eu=quis&tincidunt=augue&in=luctus&leo=tincidunt&maecenas=nulla&pulvinar=mollis&lobortis=molestie&est=lorem&phasellus=quisque&sit=ut",
"location": "Pennsylvania",
"title": "Analog Circuit Design manager",
"description": "",
"how_to_apply": "",
"company_logo": "http://dummyimage.com/155x185.png/cc0000/ffffff"
},
{
"id": 2,
"type": "Full Time",
"url": "https://posterous.com/et/ultrices/posuere/cubilia/curae/duis.json?nunc=non&purus=velit&phasellus=donec&in=diam&felis=neque&donec=vestibulum&semper=eget&sapien=vulputate&a=ut&libero=ultrices&nam=vel&dui=augue&proin=vestibulum&leo=ante&odio=ipsum&porttitor=primis&id=in&consequat=faucibus&in=orci&consequat=luctus&ut=et&nulla=ultrices&sed=posuere&accumsan=cubilia&felis=curae&ut=donec&at=pharetra&dolor=magna&quis=vestibulum&odio=aliquet&consequat=ultrices&varius=erat",
"created_at": "2019-10-01T13:09:54Z",
"company": "Herman-Kuhic",
"company_url": "http://weather.com/eleifend/donec/ut/dolor/morbi.json?tellus=augue&nisi=aliquam&eu=erat&orci=volutpat&mauris=in&lacinia=congue&sapien=etiam&quis=justo&libero=etiam&nullam=pretium&sit=iaculis&amet=justo&turpis=in&elementum=hac&ligula=habitasse&vehicula=platea&consequat=dictumst&morbi=etiam&a=faucibus&ipsum=cursus&integer=urna&a=ut&nibh=tellus&in=nulla&quis=ut&justo=erat&maecenas=id&rhoncus=mauris&aliquam=vulputate&lacus=elementum&morbi=nullam&quis=varius&tortor=nulla&id=facilisi&nulla=cras&ultrices=non&aliquet=velit&maecenas=nec&leo=nisi&odio=vulputate&condimentum=nonummy&id=maecenas&luctus=tincidunt&nec=lacus&molestie=at&sed=velit&justo=vivamus&pellentesque=vel&viverra=nulla&pede=eget&ac=eros&diam=elementum&cras=pellentesque&pellentesque=quisque&volutpat=porta&dui=volutpat&maecenas=erat&tristique=quisque&est=erat&et=eros&tempus=viverra&semper=eget&est=congue&quam=eget&pharetra=semper&magna=rutrum&ac=nulla&consequat=nunc&metus=purus&sapien=phasellus&ut=in&nunc=felis&vestibulum=donec&ante=semper&ipsum=sapien&primis=a&in=libero&faucibus=nam&orci=dui&luctus=proin&et=leo&ultrices=odio&posuere=porttitor&cubilia=id&curae=consequat&mauris=in&viverra=consequat&diam=ut",
"location": "California",
"title": "Operator",
"description": "",
"how_to_apply": "",
"company_logo": "http://dummyimage.com/185x224.jpg/cc0000/ffffff"
},
{
"id": 3,
"type": "Full Time",
"url": "https://craigslist.org/luctus/rutrum.png?vestibulum=elit&rutrum=proin&rutrum=risus&neque=praesent&aenean=lectus&auctor=vestibulum&gravida=quam&sem=sapien&praesent=varius&id=ut&massa=blandit&id=non&nisl=interdum&venenatis=in&lacinia=ante&aenean=vestibulum&sit=ante&amet=ipsum&justo=primis&morbi=in&ut=faucibus&odio=orci&cras=luctus&mi=et&pede=ultrices&malesuada=posuere&in=cubilia&imperdiet=curae&et=duis&commodo=faucibus&vulputate=accumsan&justo=odio&in=curabitur&blandit=convallis&ultrices=duis&enim=consequat&lorem=dui&ipsum=nec&dolor=nisi&sit=volutpat&amet=eleifend&consectetuer=donec&adipiscing=ut&elit=dolor&proin=morbi&interdum=vel&mauris=lectus&non=in&ligula=quam&pellentesque=fringilla&ultrices=rhoncus&phasellus=mauris&id=enim&sapien=leo&in=rhoncus&sapien=sed&iaculis=vestibulum&congue=sit&vivamus=amet&metus=cursus&arcu=id&adipiscing=turpis&molestie=integer&hendrerit=aliquet&at=massa&vulputate=id&vitae=lobortis&nisl=convallis&aenean=tortor&lectus=risus&pellentesque=dapibus&eget=augue&nunc=vel&donec=accumsan&quis=tellus&orci=nisi&eget=eu&orci=orci&vehicula=mauris&condimentum=lacinia&curabitur=sapien&in=quis&libero=libero&ut=nullam&massa=sit&volutpat=amet&convallis=turpis&morbi=elementum&odio=ligula&odio=vehicula&elementum=consequat&eu=morbi&interdum=a",
"created_at": "2013-03-11T15:13:15Z",
"company": "Howe-Becker",
"company_url": "https://boston.com/orci/luctus/et/ultrices.jpg?condimentum=semper&neque=est&sapien=quam&placerat=pharetra&ante=magna&nulla=ac&justo=consequat&aliquam=metus&quis=sapien&turpis=ut&eget=nunc&elit=vestibulum&sodales=ante&scelerisque=ipsum&mauris=primis&sit=in&amet=faucibus&eros=orci&suspendisse=luctus&accumsan=et&tortor=ultrices&quis=posuere&turpis=cubilia&sed=curae&ante=mauris&vivamus=viverra&tortor=diam&duis=vitae&mattis=quam&egestas=suspendisse&metus=potenti&aenean=nullam&fermentum=porttitor&donec=lacus&ut=at&mauris=turpis&eget=donec&massa=posuere&tempor=metus&convallis=vitae&nulla=ipsum&neque=aliquam&libero=non&convallis=mauris&eget=morbi&eleifend=non&luctus=lectus&ultricies=aliquam&eu=sit&nibh=amet&quisque=diam&id=in&justo=magna&sit=bibendum&amet=imperdiet&sapien=nullam&dignissim=orci&vestibulum=pede&vestibulum=venenatis&ante=non&ipsum=sodales&primis=sed&in=tincidunt&faucibus=eu&orci=felis&luctus=fusce&et=posuere&ultrices=felis&posuere=sed&cubilia=lacus&curae=morbi&nulla=sem&dapibus=mauris&dolor=laoreet&vel=ut&est=rhoncus&donec=aliquet&odio=pulvinar&justo=sed&sollicitudin=nisl&ut=nunc&suscipit=rhoncus&a=dui&feugiat=vel&et=sem&eros=sed&vestibulum=sagittis&ac=nam&est=congue&lacinia=risus&nisi=semper&venenatis=porta&tristique=volutpat&fusce=quam",
"location": "Oregon",
"title": "Software Test Engineer I",
"description": "",
"how_to_apply": "",
"company_logo": "http://dummyimage.com/111x130.bmp/5fa2dd/ffffff"
},
{
"id": 4,
"type": "Full Time",
"url": "http://usa.gov/at/diam/nam/tristique/tortor/eu/pede.jsp?in=turpis&blandit=adipiscing&ultrices=lorem&enim=vitae&lorem=mattis&ipsum=nibh&dolor=ligula&sit=nec&amet=sem&consectetuer=duis&adipiscing=aliquam&elit=convallis&proin=nunc",
"created_at": "2000-12-20T22:53:44Z",
"company": "Wolff LLC",
"company_url": "http://time.com/congue.jsp?pretium=turpis&iaculis=enim&justo=blandit&in=mi&hac=in&habitasse=porttitor&platea=pede&dictumst=justo&etiam=eu&faucibus=massa&cursus=donec&urna=dapibus&ut=duis&tellus=at&nulla=velit&ut=eu&erat=est&id=congue",
"location": "Texas",
"title": "Staff Scientist",
"description": "",
"how_to_apply": "",
"company_logo": "http://dummyimage.com/122x234.bmp/5fa2dd/ffffff"
}
]
49 changes: 23 additions & 26 deletions cypress/integration/details.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,46 +3,43 @@
context("Details", () => {
beforeEach(() => {
cy.fixture("jobs50").then((jobsJson) => {
cy.server();
cy.route({
method: "GET",
url: "/jobs",
status: 200,
response: jobsJson,
delay: 1000,
cy.fixture("jobDetails").then((jobDetails) => {
cy.server();
cy.route({
method: "GET",
url: "/jobs",
status: 200,
response: jobsJson,
delay: 1000,
});
cy.route({
method: "GET",
url: "/jobs/f1884b46-ecb4-473c-81f5-08d9bf2ab3bb",
status: 200,
response: jobDetails,
delay: 1000,
});
});
});
cy.visit("http://localhost:3000");
cy.wait(1000);
cy.get(
"#app > div.search__container > div.jobs__container > div:nth-child(1) > div.jobcard__container__left > div.jobcard__container__middle > a > p"
).click();
cy.wait(500);
cy.get("#f1884b46-ecb4-473c-81f5-08d9bf2ab3bb").click({ force: true });
});

it("Should display '<Details />' correctly", () => {
cy.get(
"#app > div.details__container > div.details__side__container > div > span"
).should("have.text", "How to Apply");
cy.get(
"#app > div.details__container > div.details__main__container > div.details__container__title > div.details__container__title__inner > h2"
).should("have.text", "Cloud DevOps Engineer");
cy.get("#how-to-label").should("have.text", "How to Apply");
cy.get("#details-title").should("have.text", "Cloud DevOps Engineer");
cy.get("#full-time-indicator").should("have.text", "Full Time");
cy.get(
"#app > div.details__container > div.details__main__container > div.details__container__company > div.details__company__right > a"
).should("have.text", "Cool Company");
cy.get("#details-company-name").should("have.text", "Cool Company");
});

it("Should be able to return to '<Search />'", () => {
cy.get("#search").should("not.be.visible");

cy.get(
"#app > div.details__container > div.details__side__container > a > span"
).click();
cy.get("#back-to-search").click();
cy.get("#search").should("be.visible");

cy.get(
"#app > div.search__container > div.jobs__container > div:nth-child(1) > div.jobcard__container__left > div.jobcard__container__middle > a > p"
).click();
cy.get("#f1884b46-ecb4-473c-81f5-08d9bf2ab3bb").click({ force: true });
cy.get("#search").should("not.be.visible");

cy.get("header").click();
Expand Down
8 changes: 4 additions & 4 deletions cypress/integration/login.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ context("Login - Success", () => {
});
});
cy.visit("http://localhost:3000");
cy.wait(1000);
cy.wait(500);
cy.get("#nav-login").click();
cy.get("h1").should("have.text", "Login");
});
Expand All @@ -31,7 +31,7 @@ context("Login - Success", () => {
cy.get("#email").type("[email protected]");
cy.get("#password").type("Red123456!!!");
cy.get("#log-in").click();
cy.wait(1500);
cy.wait(500);

cy.get("#nav-login").should("not.exist");
cy.get("#search").should("be.visible");
Expand All @@ -56,7 +56,7 @@ context("Login - Error", () => {
});
});
cy.visit("http://localhost:3000");
cy.wait(1000);
cy.wait(500);
cy.get("#nav-login").click();
cy.get("h1").should("have.text", "Login");
});
Expand All @@ -66,6 +66,6 @@ context("Login - Error", () => {
cy.get("#password").type("Red123456!!!");
cy.get("#log-in").click();
cy.wait(500);
cy.get("#notification-text").should("have.text", "Invalid credentials.");
cy.get("#notification").should("have.text", "Invalid credentials.");
});
});
Loading

0 comments on commit d97c9c8

Please sign in to comment.