mirror of
https://github.com/Threnklyn/jira.git
synced 2026-06-05 20:48:28 +02:00
start adding some basic integration tests
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
endpoint: http://localhost:8080
|
||||||
|
user: gojira
|
||||||
Executable
+14
@@ -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
@@ -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
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
INCLUDE MERGE -VOLUME -COPY \
|
||||||
|
https://raw.githubusercontent.com/cptactionhank/docker-atlassian-jira-software/master/Dockerfile \
|
||||||
|
Dockerfile.inc
|
||||||
+67
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user