start adding some basic integration tests

This commit is contained in:
Cory Bennett
2016-08-03 00:13:53 -07:00
parent 986528d4ea
commit 9111231545
7 changed files with 242 additions and 0 deletions
+2
View File
@@ -0,0 +1,2 @@
endpoint: http://localhost:8080
user: gojira
Executable
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
eval "$(curl -q -s https://raw.githubusercontent.com/coryb/osht/master/osht.sh)"
cd $(dirname $0)
jira=../jira
PLAN 4
RUNS sh -c "docker rm -f go-jira-test || true"
RUNS docker run --detach --name go-jira-test --publish 8080:8080 go-jira-test:latest
RUNS sleep 10
RUNS curl -q -L --retry 60 --retry-delay 1 -f -s "http://localhost:8080/rest/api/2/serverInfo?doHealthCheck=1"
Executable
+21
View File
@@ -0,0 +1,21 @@
#!/bin/bash
eval "$(curl -q -s https://raw.githubusercontent.com/coryb/osht/master/osht.sh)"
cd $(dirname $0)
jira=../jira
PLAN 7
RUNS $jira logout
NRUNS $jira req /rest/auth/1/session </dev/null
ODIFF <<EOF
Jira Password [gojira]:
EOF
echo "gojira123" | RUNS $jira login
RUNS $jira req /rest/auth/1/session </dev/null
GREP '"name": "gojira"'
GREP '"self": "http://localhost:8080/rest/api/latest/user?username=gojira"'
Executable
+132
View File
@@ -0,0 +1,132 @@
#!/bin/bash
eval "$(curl -q -s https://raw.githubusercontent.com/coryb/osht/master/osht.sh)"
cd $(dirname $0)
jira=../jira
PLAN 24
RUNS $jira create --project BASIC -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: To Do
summary: summary
project: BASIC
issuetype: Bug
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
RUNS $jira create --project SCRUM -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: To Do
summary: summary
project: SCRUM
issuetype: Bug
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
RUNS $jira create --project KANBAN -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: Backlog
summary: summary
project: KANBAN
issuetype: Bug
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
RUNS $jira create --project PROJECT -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: To Do
summary: summary
project: PROJECT
issuetype: Task
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
RUNS $jira create --project PROCESS -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: Open
summary: summary
project: PROCESS
issuetype: Task
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
RUNS $jira create --project TASK -o summary=summary -o description=description --noedit --saveFile issue.props
issue=$(awk '/issue/{print $2}' issue.props)
DIFF <<EOF
OK $issue http://localhost:8080/browse/$issue
EOF
RUNS $jira view $issue
DIFF <<EOF
issue: $issue
created: a minute ago
status: To Do
summary: summary
project: TASK
issuetype: Task
assignee: gojira
reporter: gojira
priority: Medium
description: |
description
EOF
+3
View File
@@ -0,0 +1,3 @@
RUN curl -Ls https://raw.githubusercontent.com/cptactionhank/docker-atlassian-jira-software/master/docker-entrypoint.sh -o /docker-entrypoint.sh \
&& chmod 755 /docker-entrypoint.sh \
&& echo jira.websudo.is.disabled = true >> /var/atlassian/jira/jira-config.properties
+3
View File
@@ -0,0 +1,3 @@
INCLUDE MERGE -VOLUME -COPY \
https://raw.githubusercontent.com/cptactionhank/docker-atlassian-jira-software/master/Dockerfile \
Dockerfile.inc
+67
View File
@@ -0,0 +1,67 @@
## Setup
These tests assume there is a jira service running at 127.0.0.1:8080 with user "gojira" and password "gojira123".
There should also be a poweruser "admin" with password "admin123"
The test Jira was setup following the instructions (here)[https://github.com/cptactionhank/docker-atlassian-jira].
### build base docker image
```
docker run --rm -i -v $(pwd):/root:ro coryb/dfpp Dockerfile.pre | docker build -t go-jira-base:latest -
```
### Initialize container
```
docker run --detach --name go-jira-test --publish 8080:8080 go-jira-base:latest
```
### create admin user
```
open http://localhost:8080
```
Then follow UI workflow to create "admin" user, skip intro and project creation.
### Create gojira user
```
jira req --user admin -M POST /rest/api/2/user '{"name":"gojira","password":"gojira123","emailAddress":"gojira@example.com","displayName":"Go Jira"}'
```
### Initialize new projects
```
jira req --user admin -M POST /rest/api/2/project '{"key":"SCRUM","name":"Scrum","projectTypeKey":"software","projectTemplateKey":"com.pyxis.greenhopper.jira:gh-scrum-template","lead":"gojira"}'
jira req --user admin -M POST /rest/api/2/project '{"key":"KANBAN","name":"Kanban","projectTypeKey":"software","projectTemplateKey":"com.pyxis.greenhopper.jira:gh-kanban-template","lead":"gojira"}'
jira req --user admin -M POST /rest/api/2/project '{"key":"BASIC","name":"Basic","projectTypeKey":"software","projectTemplateKey":"com.pyxis.greenhopper.jira:basic-software-development-template","lead":"gojira"}'
jira req --user admin -M POST /rest/api/2/project '{"key":"PROJECT","name":"Project","projectTypeKey":"business","projectTemplateKey":"com.atlassian.jira-core-project-templates:jira-core-project-management","lead":"gojira"}'
jira req --user admin -M POST /rest/api/2/project '{"key":"PROCESS","name":"Process","projectTypeKey":"business","projectTemplateKey":"com.atlassian.jira-core-project-templates:jira-core-process-management","lead":"gojira"}'
jira req --user admin -M POST /rest/api/2/project '{"key":"TASK","name":"Task","projectTypeKey":"business","projectTemplateKey":"com.atlassian.jira-core-project-templates:jira-core-task-management","lead":"gojira"}'
```
### snapshot docker container
```
docker commit go-jira-test go-jira-test:latest
```
### Destroy base container
```
docker rm -f go-jira-test
```
## Running Test:
From the top level of the project you can run:
```
# this creates a local "jira" binary
make
# this runs the integration tests in the "t" directory
prove
```
## API Documentation:
https://docs.atlassian.com/jira/REST/cloud/
## projectTempalteKey missing documentation
https://answers.atlassian.com/questions/36176301/jira-api-7.1.0-create-project