Skip to content

Commit d5c9c52

Browse files
committed
Merge branch 'develop' of https://github.com/oci-labs/check-ins into Issue_17_unit_tests
2 parents ea0949c + 8e51a6b commit d5c9c52

File tree

22 files changed

+783
-100
lines changed

22 files changed

+783
-100
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
name: Master and Develop Branch
3+
4+
on:
5+
push:
6+
branches:
7+
- 'master'
8+
- 'develop'
9+
10+
jobs:
11+
12+
test:
13+
name: Test - Units & Integrations
14+
runs-on: ubuntu-18.04
15+
16+
steps:
17+
- uses: actions/checkout@v1
18+
- name: Set up JDK 11
19+
uses: actions/setup-java@v1
20+
with:
21+
java-version: 1.8
22+
- name: Grant execute permission for gradlew
23+
run: chmod +x gradlew
24+
- name: Gradle package
25+
run: ./gradlew assembleServerAndClient
26+
27+
#TO-DO : setup sonar once we have completed Issue#25
28+
# sonar:
29+
# name: Test - SonarCloud Scan
30+
# runs-on: ubuntu-18.04
31+
32+
# steps:
33+
# - uses: actions/checkout@v1
34+
# - name: Set up JDK 11
35+
# uses: actions/setup-java@v1
36+
# with:
37+
# java-version: 1.8
38+
# - name: SonarCloud Scan
39+
# run: ./gradlew assembleServerAndClient -Psonar -Dsonar.login=${{ secrets.SONAR_TOKEN }}
40+
# env:
41+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
43+
artifact:
44+
name: Publish - GitHub Packages
45+
runs-on: ubuntu-18.04
46+
#needs: [test, sonar]
47+
48+
steps:
49+
- uses: actions/checkout@v1
50+
- name: Set up JDK 11
51+
uses: actions/setup-java@v1
52+
with:
53+
java-version: 1.8
54+
- name: Publish artifact on GitHub Packages
55+
run: gradle publish
56+
env:
57+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
58+
59+
#TO-DO - Add a deployment step to GCP once the details are finalized.
60+
# docker:
61+
# name: Publish - Docker Hub
62+
# runs-on: ubuntu-18.04
63+
# needs: [test, sonar]
64+
# env:
65+
# REPO: ${{ secrets.DOCKER_REPO }}
66+
67+
# steps:
68+
# - uses: actions/checkout@v1
69+
# - name: Set up JDK 11
70+
# uses: actions/setup-java@v1
71+
# with:
72+
# java-version: 1.8
73+
# - name: Login to Docker Hub
74+
# run: docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASS }}
75+
# - name: Build Docker image
76+
# run: docker build -t $REPO:latest -t $REPO:${GITHUB_SHA::8} .
77+
# - name: Publish Docker image
78+
# run: docker push $REPO

build.gradle

+35-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
plugins {
2+
id 'java-library'
3+
id 'maven-publish'
4+
}
5+
16
task copyClientResources(dependsOn: ':web-ui:build') {
27
group = 'build'
38
description = 'Copy web-ui resources into server'
@@ -15,10 +20,37 @@ task assembleServerAndClient(dependsOn: ['copyClientResources', ':server:shadowJ
1520
description = 'Build combined server & client JAR'
1621
}
1722

18-
task test {
23+
// task test {
1924

20-
}
25+
// }
26+
27+
28+
// task check {
29+
30+
// }
2131

22-
task check {
32+
publishing {
33+
publications {
34+
checkInsProject(MavenPublication) {
35+
version "0.1"
36+
group "com.objectcomputing.checkins"
37+
from components.java
38+
39+
}
40+
}
2341

42+
repositories {
43+
maven {
44+
name = "CheckInsProject"
45+
url = "https://maven.pkg.github.com/oci-labs/check-ins"
46+
credentials {
47+
username = System.getenv("GITHUB_ACTOR")!=null?System.getenv("GITHUB_ACTOR"):"OCI-LABS"
48+
password = System.getenv("GITHUB_TOKEN")!=null?System.getenv("GITHUB_TOKEN"):"OCI-LABS"
49+
}
50+
}
51+
}
2452
}
53+
54+
55+
56+

server/src/main/java/com/objectcomputing/checkins/services/checkins/CheckIns.java server/src/main/java/com/objectcomputing/checkins/services/checkins/CheckIn.java

+12-6
Original file line numberDiff line numberDiff line change
@@ -5,34 +5,40 @@
55

66
import javax.persistence.Column;
77
import javax.persistence.Entity;
8-
import javax.persistence.GeneratedValue;
98
import javax.persistence.Id;
109
import javax.persistence.Table;
1110
import javax.validation.constraints.NotNull;
1211

12+
import io.micronaut.data.annotation.GeneratedValue;
13+
1314
@Entity
1415
@Table(name="checkins")
15-
public class CheckIns {
16+
public class CheckIn {
1617

17-
public CheckIns() {}
18+
public CheckIn() {}
1819

19-
public CheckIns(UUID teamMemberId, UUID pdlId, Date checkInDate, String targetQtr, String targetYear) {
20+
public CheckIn(UUID teamMemberId, UUID pdlId, Date checkInDate, String targetQtr, String targetYear) {
2021
this.teamMemberId= teamMemberId;
2122
this.pdlId=pdlId;
2223
this.checkInDate=checkInDate;
2324
this.targetQtr=targetQtr;
2425
this.targetYear=targetYear;
2526
}
2627

28+
@Id
29+
@Column(name="uuid")
30+
@NotNull
31+
@GeneratedValue
32+
private UUID id;
33+
2734
@Column(name="teamMemberId")
2835
@NotNull
2936
private UUID teamMemberId;
3037

3138

3239
@Id
33-
@Column(name="uuid")
40+
@Column(name="pdlId")
3441
@NotNull
35-
@GeneratedValue
3642
private UUID pdlId;
3743

3844
@Column(name="checkindate")

server/src/main/java/com/objectcomputing/checkins/services/checkins/CheckInsController.java server/src/main/java/com/objectcomputing/checkins/services/checkins/CheckInController.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import javax.annotation.Nullable;
88
import javax.validation.Valid;
99

10-
import com.objectcomputing.checkins.services.checkins.CheckIns;
10+
import com.objectcomputing.checkins.services.checkins.CheckIn;
1111

1212
import io.micronaut.http.HttpResponse;
1313
import io.micronaut.http.annotation.Body;
@@ -17,44 +17,44 @@
1717
import io.micronaut.http.annotation.Put;
1818

1919
@Controller("/check-in")
20-
public class CheckInsController {
20+
public class CheckInController {
21+
22+
protected final CheckInRepository checkInRepository;
2123

22-
protected final CheckInsRepository checkInsRepository;
23-
24-
public CheckInsController(CheckInsRepository checkInsRepository){
25-
this.checkInsRepository = checkInsRepository;
24+
public CheckInController(CheckInRepository checkInRepository){
25+
this.checkInRepository = checkInRepository;
2626
}
2727

2828
@Get("/{?teamMemberId,targetYear,targetQtr,pdlId}")
29-
public List<CheckIns> findByValue(@Nullable UUID teamMemberId, @Nullable String targetYear, @Nullable UUID pdlId
29+
public List<CheckIn> findByValue(@Nullable UUID teamMemberId, @Nullable String targetYear, @Nullable UUID pdlId
3030
,@Nullable String targetQtr) {
3131

32-
if(teamMemberId != null) {
33-
return checkInsRepository.findByName(teamMemberId);
32+
if(teamMemberId != null) {
33+
return checkInRepository.findByTeamMemberId(teamMemberId);
3434
} else if(targetYear != null) {
35-
return checkInsRepository.findByTargetQuarter(targetYear,targetQtr);
35+
return checkInRepository.findByTargetYearAndTargetQtr(targetYear,targetQtr);
3636
} else if(pdlId != null) {
37-
return checkInsRepository.findByPdlId(pdlId);
37+
return checkInRepository.findByPdlId(pdlId);
3838
} else {
39-
return checkInsRepository.findAll();
39+
return checkInRepository.findAll();
4040
}
4141
}
4242

4343

4444
@Post("/")
45-
public HttpResponse<CheckIns> save(@Body @Valid CheckIns checkIns) {
46-
CheckIns newMemberCheckIn = checkInsRepository.save(checkIns);
45+
public HttpResponse<CheckIn> save(@Body @Valid CheckIn checkIn) {
46+
CheckIn newMemberCheckIn = checkInRepository.save(checkIn);
4747

4848
return HttpResponse.created(newMemberCheckIn)
4949
.headers(headers -> headers.location(location(newMemberCheckIn.getPdlId())));
5050
}
5151

5252

5353
@Put("/")
54-
public HttpResponse<?> update(@Body @Valid CheckIns checkIn) {
54+
public HttpResponse<?> update(@Body @Valid CheckIn checkIn) {
5555

5656
if(null != checkIn.getTeamMemberId()){
57-
CheckIns updatedMemberCheckIn = checkInsRepository.update(checkIn);
57+
CheckIn updatedMemberCheckIn = checkInRepository.update(checkIn);
5858
return HttpResponse
5959
.ok()
6060
.headers(headers -> headers.location(location(updatedMemberCheckIn.getTeamMemberId())))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.objectcomputing.checkins.services.checkins;
2+
3+
import java.util.List;
4+
import java.util.UUID;
5+
6+
import com.objectcomputing.checkins.services.checkins.CheckIn;
7+
8+
import io.micronaut.data.jdbc.annotation.JdbcRepository;
9+
import io.micronaut.data.repository.CrudRepository;
10+
import io.micronaut.data.model.query.builder.sql.Dialect;
11+
12+
@JdbcRepository(dialect = Dialect.POSTGRES)
13+
public interface CheckInRepository extends CrudRepository<CheckIn,UUID>{
14+
15+
List<CheckIn> findByTeamMemberId(UUID teamMemberId);
16+
List<CheckIn> findByPdlId(UUID pdlId);
17+
List<CheckIn> findByTargetYearAndTargetQtr(String targetYear,String targetQtr);
18+
List<CheckIn> findAll();
19+
20+
}

server/src/main/java/com/objectcomputing/checkins/services/checkins/CheckInsRepository.java

-17
This file was deleted.

web-ui/package.json

+22-1
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,43 @@
22
"name": "web-ui",
33
"version": "0.1.0",
44
"private": true,
5+
"jest": {
6+
"snapshotSerializers": ["enzyme-to-json/serializer"],
7+
"coverageThreshold": {
8+
"global": {
9+
"branches": 0,
10+
"functions": 0,
11+
"lines": 0,
12+
"statements": 0
13+
}
14+
},
15+
"coverageReporters": [
16+
"text"
17+
]
18+
},
519
"dependencies": {
620
"@material-ui/core": "^4.10.0",
721
"@material-ui/icons": "^4.9.1",
822
"@testing-library/jest-dom": "^4.2.4",
923
"@testing-library/react": "^9.3.2",
1024
"@testing-library/user-event": "^7.1.2",
25+
"enzyme": "^3.11.0",
26+
"enzyme-adapter-react-16": "^1.15.2",
27+
"enzyme-to-json": "^3.5.0",
28+
"isomorphic-fetch": "^2.2.1",
29+
"jest-fetch-mock": "^3.0.3",
1130
"react": "^16.13.1",
1231
"react-dom": "^16.13.1",
1332
"react-modal": "^3.11.2",
1433
"react-router-dom": "^5.1.2",
15-
"react-scripts": "3.4.1"
34+
"react-scripts": "3.4.1",
35+
"react-test-renderer": "^16.13.1"
1636
},
1737
"scripts": {
1838
"start": "react-scripts start",
1939
"build": "react-scripts build",
2040
"test": "react-scripts test",
41+
"coverage": "npm test -- --coverage",
2142
"eject": "react-scripts eject"
2243
},
2344
"eslintConfig": {

web-ui/src/App.test.js

-9
This file was deleted.

web-ui/src/components/CheckinCycle.jsx

-8
This file was deleted.

web-ui/src/components/avatar/Avatar.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from "react";
22
import Avatar from "@material-ui/core/Avatar";
33
import PersonIcon from "@material-ui/icons/Person";
44

5-
const AvatarComponent = (loggedIn = false, profile = {}) => {
5+
const AvatarComponent = ({ loggedIn = false, profile = {} }) => {
66
const { image_url } = profile;
77
return (
88
<Avatar
@@ -16,7 +16,7 @@ const AvatarComponent = (loggedIn = false, profile = {}) => {
1616
{!image_url || loggedIn === false ? (
1717
<PersonIcon />
1818
) : (
19-
<img alt="Profile" src={{ image_url }} />
19+
<img alt="Profile" src={image_url} />
2020
)}
2121
</Avatar>
2222
);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import React from "react";
2+
import Avatar from "./Avatar";
3+
import renderer from "react-test-renderer";
4+
5+
it("renders correctly", () => {
6+
snapshot(<Avatar />);
7+
});
8+
9+
it("renders image_url", () => {
10+
snapshot(<Avatar image_url={"http://someurl.com/das.png"} />);
11+
});

0 commit comments

Comments
 (0)