Commit 7696bef9 authored by Magnus Westergaard's avatar Magnus Westergaard
Browse files

Removed cucumber tests.

parent 6ad651bc
......@@ -32,10 +32,6 @@ endif
wait_until_ready: ## Checks if koha is up and running
sudo docker exec -t xkoha ./wait_until_ready.py
ifdef TESTPROFILE
CUKE_PROFILE_ARG=--profile $(TESTPROFILE)
endif
ifeq ($(shell uname -s), Darwin)
XHOST_PATH=/opt/X11/bin/
endif
......@@ -47,17 +43,7 @@ XHOST_REMOVE=$(XHOST_PATH)xhost -
DISPLAY_ARG=-e DISPLAY=$(DOCKER_GW):0
endif
ifdef FEATURE
CUKE_ARGS=-n \"$(FEATURE)\"
endif
test: test_patron_client test_catalinker cuke_test ## Run unit, module and cucumber tests.
ifdef CUKE_PROFILE_ARG
CUKE_PROFILE=$(CUKE_PROFILE_ARG)
else
CUKE_PROFILE=--profile default
endif
test: test_catalinker ## Run unit and module tests.
ifdef FAIL_FAST
FAIL_FAST_ARG=-e FAIL_FAST=1
......@@ -80,56 +66,13 @@ rebuild_catalinker: ## Force rebuilds catalinker
@echo "======= FORCE RECREATING CATALINKER ======\n"
$(call rebuild,catalinker)
rebuild_patron_client: ## Force rebuilds patron-client
@echo "======= FORCE RECREATING PATRON-CLIENT ======\n"
ifeq ($(LSDEVMODE),ci)
$(DOCKER_COMPOSE_INIT) &&\
$(DOCKER_COMPOSE) stop build_patron_client || true &&\
$(DOCKER_COMPOSE) rm -f build_patron_client || true &&\
$(DOCKER_COMPOSE) build --no-cache build_patron_client &&\
$(DOCKER_COMPOSE) run build_patron_client
endif
$(call rebuild,patron_client)
rebuild_cuke_tests: ## Force rebuilds cuke_tests
@echo "======= FORCE RECREATING CUKE_TESTS ======\n"
$(call rebuild,cuke_tests)
cuke_test: ## Run Cucumber tests
@$(XHOST_ADD)
$(DOCKER_COMPOSE_FULL) run --rm $(DISPLAY_ARG) $(BROWSER_ARG) $(FAIL_FAST_ARG) cuke_tests \
bash -c "ruby /tests/sanity-check.rb && \
cucumber --profile rerun `if [ -n \"$(CUKE_PROFILE)\" ]; then echo $(CUKE_PROFILE); else echo --profile default; fi` $(CUKE_ARGS) || \
cucumber @report/rerun.txt `if [ -n \"$(CUKE_PROFILE)\" ]; then echo $(CUKE_PROFILE); else echo --profile default; fi` $(CUKE_ARGS)"
@$(XHOST_REMOVE)
test_one: ## Run 'utlaan_via_superbruker'.
@$(XHOST_ADD)
$(DOCKER_COMPOSE_FULL) run --rm $(BROWSER_ARG) $(DISPLAY_ARG) cuke_tests cucumber $(CUKE_PROFILE_ARG) -n "Superbruker l.ner ut bok til Knut"
@$(XHOST_REMOVE)
list_unused_steps: ## List unused cucumber steps
$(DOCKER_COMPOSE_FULL) run --rm cuke_tests cucumber --tags=~@ignore --tags=~@migration -d -f Unused
rebuild_zebra: ## Rebuild Zebra index in Koha
sudo docker exec xkoha koha-rebuild-zebra -full -v -b name
clean_report: ## Clean the cucumber report directory
rm test/report/*.* || true
test_redef: test_patron_client test_catalinker cuke_redef ## Test only Redef (excluding services — this is tested during build)
cuke_redef: ## Run redef cucumber tests
@$(XHOST_ADD)
rm -rf $(LSEXTPATH)/test/report/*.* && \
$(DOCKER_COMPOSE_FULL) run --rm $(DISPLAY_ARG) $(BROWSER_ARG) cuke_tests \
bash -c "ruby /tests/sanity-check.rb && cucumber --profile rerun \
`if [ -n \"$(CUKE_PROFILE_ARG)\" ]; then echo $(CUKE_PROFILE_ARG); else echo --profile default; fi` --tags @redef $(CUKE_ARGS) || cucumber @report/rerun.txt \
`if [ -n \"$(CUKE_PROFILE_ARG)\" ]; then echo $(CUKE_PROFILE_ARG); else echo --profile default; fi` --tags @redef $(CUKE_ARGS)"
@$(XHOST_REMOVE)
test_patron_client: ## Run unit and module-tests of patron-client
cd $(LSEXTPATH)/redef/patron-client && make test
test_redef: test_catalinker ## Test only Redef (excluding services — this is tested during build)
test_catalinker: ## Run unit and module-tests for catalinker
cd $(LSEXTPATH)/redef/catalinker && make test
......@@ -138,8 +81,7 @@ login: ## Login to docker, needs PASSWORD, USER env variables
@docker login --username=$(USER) --password=$(PASSWORD)
TAG = "$(shell git rev-parse HEAD)"
push: ## Push services,catalinker & patron-client containers to dockerhub
cd $(LSEXTPATH)/redef/patron-client && make push TAG=$(TAG)
push: ## Push services and catalinker images to dockerhub
cd $(LSEXTPATH)/redef/services && make push TAG=$(TAG)
cd $(LSEXTPATH)/redef/catalinker && make push TAG=$(TAG)
......
report/
kohadb.tar
FROM ubuntu:trusty
RUN apt-get update && apt-get install -y \
build-essential \
zlib1g-dev \
wget \
unzip \
software-properties-common \
libxi6 \
libgconf-2-4 \
chromium-browser \
mysql-client \
apparmor && \
apt-get clean
RUN add-apt-repository ppa:brightbox/ruby-ng
RUN apt-get update && apt-get install -y --force-yes ruby2.3 ruby2.3-dev && apt-get clean
RUN wget --quiet http://chromedriver.storage.googleapis.com/2.24/chromedriver_linux64.zip && \
unzip chromedriver_linux64.zip -d /usr/local/bin/ && rm chromedriver_linux64.zip && \
chmod +x /usr/local/bin/chromedriver
RUN wget --quiet https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2 && \
bzip2 -d phantomjs-2.1.1-linux-x86_64.tar.bz2 && \
tar -f phantomjs-2.1.1-linux-x86_64.tar -x phantomjs-2.1.1-linux-x86_64/bin/phantomjs && \
mv phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin &&\
rm phantomjs-2.1.1-linux-x86_64.tar &&\
rm -r phantomjs-2.1.1-linux-x86_64
RUN gem install \
rspec \
pry \
rdf \
json-ld \
rest-client \
nokogiri \
bcrypt \
faker
RUN gem install cucumber -v 2.4.0
RUN gem install selenium-webdriver -v 3.0.3
RUN gem install watir -v 6.0.2
RUN gem install watir-scroll
RUN wget https://get.docker.com/builds/Linux/x86_64/docker-1.10.3 && mv docker-1.10.3 /usr/bin/docker && chmod +x /usr/bin/docker
VOLUME ["/tests"]
WORKDIR /tests
# https://github.com/cucumber/cucumber/wiki/cucumber.yml
<% omit_ignore = "--tags ~@ignore" %>
<% omit_wip = "--tags ~@wip" %>
<% omit_migration = "--tags ~@migration" %>
<% rerun = "--format pretty --format rerun --out report/rerun.txt" %>
default: <%= omit_ignore %> <%= omit_migration %> <%= omit_wip %> features
html_report: <%= omit_ignore %> <%= omit_migration %> <%= omit_wip %> --format pretty --format html --out report/index.html
wip: <%= omit_ignore %> <%= omit_migration %> --tags @wip
html_report_wip: <%= omit_ignore %> <%= omit_migration %> --tags @wip --format pretty --format html --out report/index_wip.html
migration: <%= omit_ignore %> <%= omit_wip %> --tags @migration
html_report_migration: <%= omit_ignore %> <%= omit_wip %> --tags @migration --format pretty --format html --out report/index_migration.html
migration_wip: <%= omit_ignore %> --tags @wip --tags @migration
html_report_migration_wip: <%= omit_ignore %> --tags @wip --tags @migration --format pretty --format html --out report/index_migration_wip.html
rerun: <%= rerun %> features
omit_wip: <%= omit_wip %>
\ No newline at end of file
# encoding: UTF-8
# language: no
@redef
Egenskap: Legge til og endre utgivelse via API
Som katalogiseringsgrensesnitt
For å kunne hjelpe katalogisator med å katalogisere
Ønsker jeg å kunne legge til og endre utgivelse via servicelagets API
Scenario: Legge til utgivelse via API
Gitt at jeg har en ontologi som beskriver utgivelse
Når jeg legger inn en utgivelse via APIet
viser APIet at utgivelsen finnes
Scenario: Endre utgivelse via API
Gitt at det er opprettet en utgivelse
Når jeg sender inn endringer i utgivelsen til APIet
viser APIet at endringene i utgivelsen er lagret
Scenario: Se utgivelse på verk via API
Gitt at jeg har en ontologi som beskriver utgivelse
Når jeg legger inn et verk via APIet
Og jeg legger inn en utgivelse via APIet
Og kopler utgivelsen til verket
viser APIet at verket har opplysninger om utgivelsen
# encoding: UTF-8
# language: no
@redef
Egenskap: Legge til og endre verk
Som katalogiseringsgrensesnitt
For å kunne hjelpe katalogisator med å katalogisere
Ønsker jeg å kunne legge til og endre verk via servicelagets API
Scenario: Legge til verk
Gitt at jeg har en ontologi som beskriver verk
Når jeg legger inn et verk via APIet
viser APIet at verket finnes
Scenario: Endre verk
Gitt at det er opprettet et verk
Når jeg sender inn endringer i verket til APIet
viser APIet at endringene i verket er lagret
# encoding: UTF-8
# language: no
@redef @arbeidsflyt @check-for-errors
Egenskap: katalogisere med eksterne kilder
Som katalogisator
Ønsker jeg å kunne hente data fra eksterne kilder for at katalogiseringen skal gå raskere og få høyest mulig kvalitet
Scenario: Hente inn eksterne data
Gitt at jeg har en bok
Og jeg legger inn et ISBN-nummer på startsida og trykker enter
Og jeg venter litt
Sjekker jeg at det vises treff fra preferert ekstern kilde
trykker jeg på "Bruk forslag"-knappen
Og jeg venter litt
åpner jeg listen med eksterne forslag fra andre kilder for agent som skal knyttes til bidrag og velger det første forslaget
trykker jeg på "Opprett ny person"-knappen
Og husker navnet på _personen jeg nettopp opprettet
legger jeg inn fødselsår og dødsår og velger "Norge" som nasjonalitet
trykker jeg på "Opprett"-knappen
Og jeg venter litt
åpner jeg listen med eksterne forslag fra andre kilder for rolle som skal knyttes til bidrag og velger det første forslaget
Og jeg venter litt
setter jeg markøren i søkefelt for verk og trykker enter
trykker jeg på "Opprett nytt verk"-knappen
trykker jeg på "Opprett"-knappen
Og jeg venter litt
Og jeg trykker på "Legg til"-knappen
Og jeg venter litt
sjekker jeg at det finnes en hovedinnførsel hvor organisasjonen jeg valgte har rollen "Dirigent" knyttet til "verket"
Så trykker jeg på "Neste steg: Beskrivelse"-knappen
sjekker jeg at verdien for "Utgivelsesår" er "1998"
Og jeg venter litt
Og jeg venter litt
åpner jeg listen med eksterne forslag fra andre kilder for utgivelsesår som skal knyttes til utgivelsen og velger det første forslaget
Og jeg venter litt
Og jeg venter litt
Og jeg venter litt
sjekker jeg at verdien for "Utgivelsesår" nå er "2000"
sjekker jeg at verdien for "Sidetall" er "207"
åpner jeg listen med eksterne forslag fra andre kilder for sidetall som skal knyttes til utgivelsen og velger det første forslaget
sjekker jeg at den siste verdien for "Sidetall" nå er "208"
åpner jeg listen med eksterne forslag fra andre kilder for language som skal knyttes til utgivelsen og velger det første forslaget
Og jeg venter litt
sjekker jeg at "Svensk" er blant verdiene som er valgt for Språk
Så trykker jeg på "Neste steg: Beskriv verk"-knappen
Så trykker jeg på "Neste steg: Emneopplysninger"-knappen
Så trykker jeg på "Neste steg: Beskriv deler"-knappen
lukker jeg dialogen
Så trykker jeg på "Neste steg: Biinnførsler"-knappen
Og jeg venter litt
trykker jeg på den første trekanten for å søke opp personen i forslaget
trykker jeg på "Opprett ny person"-knappen
Og husker navnet på _personen jeg nettopp opprettet
trykker jeg på "Opprett"-knappen
Og jeg venter litt
Og velger radioknappen for "Utgivelse" for å velge "Rollen gjelder:"
Og jeg trykker på "Legg til"-knappen
sjekker jeg at det finnes en biinnførsel hvor organisasjonen jeg valgte har rollen "Forfatter" knyttet til "utgivelsen"
trykker jeg på den første trekanten for å søke opp personen i forslaget
trykker jeg på "Opprett ny person"-knappen
noterer jeg ned navnet på personen
trykker jeg på "Opprett"-knappen
Og jeg venter litt
Og velger radioknappen for "Utgivelse" for å velge "Rollen gjelder:"
Og jeg trykker på "Legg til"-knappen
Og jeg venter litt
Og jeg venter litt
sjekker jeg at det finnes en biinnførsel hvor organisasjonen jeg valgte har rollen "Oversetter" knyttet til "utgivelsen"
Og jeg trykker på "Bruk forslag"-knappen
trykker jeg på den første trekanten for å søke opp personen i forslaget
trykker jeg på "Opprett ny person"-knappen
noterer jeg ned navnet på personen
trykker jeg på "Opprett"-knappen
Og jeg venter litt
Og velger radioknappen for "Verk" for å velge "Rollen gjelder:"
Og jeg trykker på "Legg til"-knappen
Og jeg venter litt
sjekker jeg at det finnes en biinnførsel hvor organisasjonen jeg valgte har rollen "Komponist" knyttet til "utgivelsen"
trykker jeg på knappen for å avslutte
jeg åpner utgivelsen i gammelt katalogiseringsgrensesnitt
Og sjekker at hovedkatalogiseringskilde og identifikator er lagret
Scenario: Legge inn et ISBN-nummer som finnes fra før
Gitt at jeg har en bok
Og jeg legger inn et ISBN-nummer på startsida og trykker enter
Og jeg venter litt
Sjekker jeg at det vises treff fra preferert ekstern kilde
trykker jeg på "Bruk forslag"-knappen
Og jeg venter litt
åpner jeg listen med eksterne forslag fra andre kilder for agent som skal knyttes til bidrag og velger det første forslaget
trykker jeg på "Opprett ny person"-knappen
Og husker navnet på _personen jeg nettopp opprettet
legger jeg inn fødselsår og dødsår og velger "Norge" som nasjonalitet
trykker jeg på "Opprett"-knappen
Og jeg venter litt
åpner jeg listen med eksterne forslag fra andre kilder for rolle som skal knyttes til bidrag og velger det første forslaget
Og jeg venter litt
setter jeg markøren i søkefelt for verk og trykker enter
trykker jeg på "Opprett nytt verk"-knappen
trykker jeg på "Opprett"-knappen
Og jeg venter litt
Og jeg trykker på "Legg til"-knappen
Og jeg venter litt
sjekker jeg at det finnes en hovedinnførsel hvor organisasjonen jeg valgte har rollen "Dirigent" knyttet til "verket"
Så trykker jeg på "Neste steg: Beskrivelse"-knappen
sjekker jeg at verdien for "Utgivelsesår" er "1998"
Og jeg legger inn samme ISBN-nummer i ISBN-feltet til utgivelsen
Og jeg venter litt
Og jeg venter litt
Og jeg legger inn samme ISBN-nummer på startsida og trykker enter
Og jeg venter litt
vises en dialog med tittelen "Denne utgivelsen finnes fra før"
# encoding: UTF-8
# language: no
@wip
@check-for-errors
Egenskap: Legg til eksemplar under verk
Som katalogisator
For å kunne registrere et nytt eksemplar
Ønsker jeg å kople et eksemplar til et verk i systemet
Bakgrunn:
Gitt at jeg er logget inn som katalogisator
@wip
Scenario: Katalogisator legger til nytt eksemplar
Gitt at jeg er i katalogiseringsgrensesnittet
Når jeg legger inn eksemplaret under et verk
viser systemet at eksemplaret er tilgjengelig i systemet når en søker opp verket
# encoding: UTF-8
# language: no
@redef
@check-for-errors
Egenskap: Legg til verk med dato
Som katalogisator
For at en låner skal kunne finne et verk med kjent årstall for førsteutgave
Ønsker jeg å registrere at et verk har et årstall
Bakgrunn:
Gitt at jeg er i katalogiseringsgrensesnittet
Scenario: Katalogisator legger inn årstall for førsteutgave av et verk
Gitt at jeg har lagt til en person
Og at jeg er i katalogiseringsgrensesnittet
Og at systemet har returnert en ny ID for det nye verket
Og jeg legger til forfatter av det nye verket
Når jeg legger til et årstall for førsteutgave av nye verket
viser systemet at årstall for førsteutgave av verket har blitt registrert
Og verkets årstall førsteutgave av vises på verks-siden
Scenario: Katalogisator prøver å legge inn årstall som ikke er årstall
Gitt at jeg har lagt til en person
Og at jeg er i katalogiseringsgrensesnittet
Og at systemet har returnert en ny ID for det nye verket
Og jeg legger til forfatter av det nye verket
Når jeg legger inn "pølsevev" i feltet for førsteutgave av verket
viser systemet at "pølsevev" ikke er ett gyldig årstall
Og ordet "pølsevev" som førsteutgave vises IKKE på verks-siden
\ No newline at end of file
# encoding: UTF-8
# language: no
@redef
@check-for-errors
Egenskap: Legg til verk med opphavsperson
Som katalogisator
For at en låner skal kunne finne et verk med kjent opphavsperson
Ønsker jeg å registrere at et verk har en opphavsperson
Bakgrunn:
Gitt at jeg har lagt til en person
Og at jeg er i katalogiseringsgrensesnittet
Scenario: Katalogisator legger inn opphavsperson for et verk
Og at systemet har returnert en ny ID for det nye verket
Og at verket har en tittel
Når jeg legger til forfatter av det nye verket
viser systemet at opphavsperson til verket har blitt registrert
vises forfatterens navn på verkssiden
# encoding: UTF-8
# language: no
@redef
Egenskap: Legg til verk med tittel
Som katalogisator
For at en låner skal kunne finne et verk med kjent tittel
Ønsker jeg å registrere at et verk har en tittel
Bakgrunn:
Gitt at jeg er i katalogiseringsgrensesnittet
@check-for-errors
Scenario: Katalogisator legger til nytt verk
Når jeg vil legge til et nytt verk
leverer systemet en ny ID for det nye verket
Og jeg kan legge til tittel for det nye verket
Og grensesnittet viser at endringene er lagret
@check-for-errors
Scenario: Katalogisator legger inn tittel for et verk
Gitt at systemet har returnert en ny ID for det nye verket
Når jeg legger til tittel for det nye verket
viser systemet at tittel på verket har blitt registrert
Og verkets tittel vises på verks-siden
# encoding: UTF-8
# language: no
Egenskap: Legge til autoriteter på verk
Som katalogisator
For å gjøre det mulig for brukere å se og søke opp emner og sjangre på verk
Ønsker jeg å legge til emner og sjangre på verk
@wip
Scenario: Opprettelse av emne
Når jeg vil lage et nytt emne
leverer systemet en ny ID for det nye emnet
Og jeg kan legge inn emnenavn
Og grensesnittet viser at endringene er lagret
@wip
Scenario: Legge til emne i arbeidsflyt
Gitt at jeg har opprettet et emne
Og at jeg har opprettet et verk i arbeidsflyten
Når jeg skriver inn emne i feltet for emne og trykker enter
søker jeg opp emner og kan velge det jeg vil ha
Og verket er tilkoplet et emne
@wip
Scenario: Opprettelse av sjanger
Gitt at jeg er på sjangeropprettelsessida
Når jeg fyller ut feltet for sjangernavn
har jeg laget en ny sjanger
@wip
Scenario: Legge til sjanger på verk
Gitt at jeg har opprettet en sjanger
Og at jeg har opprettet et verk i arbeidsflyten
Når jeg skriver inn sjangernavn i feltet for sjanger og trykker enter
søker jeg opp sjangeren og kan velge den jeg vil ha
Og verket er tilkoplet en sjanger
# encoding: UTF-8
# language: no
@check-for-errors
@redef
Egenskap: Redigere autoritative persondata
Som Katalogisator
For å vedlikeholde det autorative personregisteret
Ønsker jeg å kunne registrere en personressurs med navn, fødselsår og eventuelt dødsår
Bakgrunn:
Gitt at jeg er i personregistergrensesnittet
Scenario: Katalogisator legger til en ny person
Når jeg vil legge til en person
leverer systemet en ny ID for den nye personen
Og jeg kan legge inn navn fødselsår og dødsår for personen
Og grensesnittet viser at personen er lagret
Når jeg klikker på linken ved urien kommer jeg til personsiden
Og personens navn vises på personsiden
# encoding: UTF-8
# language: no
@check-for-errors
@wip @redef
Egenskap: Søk opp person og legg til som opphavsperson for verk
Som katalogisator
For at en låner skal kunne finne et verk med kjent opphavsperson
Ønsker jeg å kunne knytte en opphavsperson til verk ved å søke på personer
Bakgrunn:
Gitt at jeg har lagt til en person
Og at jeg er i katalogiseringsgrensesnittet
@wip
Scenario: Katalogisator søker opp og velger opphavsperson for et verk
Og at systemet har returnert en ny ID for det nye verket
Og at verket har en tittel
Når jeg søker på navn til opphavsperson for det nye verket
Og velger person fra en treffliste
viser systemet at opphavsperson til verket har blitt registrert
# encoding: UTF-8
# language: no
@redef
@check-for-errors
Egenskap: Søk opp person og se at denne har andre verk fra før
Som katalogisator
Ønsker jeg å kunne se andre verk en person har skrevet for å kunne velge riktig person
Bakgrunn:
Gitt at jeg har lagt til en person
Og at jeg er i katalogiseringsgrensesnittet
Og at systemet har returnert en ny ID for det nye verket
Og at verket har en tittel
Og jeg søker på navn til opphavsperson for det nye verket
Og velger person fra en treffliste
viser systemet at opphavsperson til verket har blitt registrert
@check-for-errors
Scenario: Katalogisator søker opp opphavsperson for et verk og kan velge riktig ugr fra verkene vedkommende har skrevet tidligere
Når at jeg er i katalogiseringsgrensesnittet
Og at systemet har returnert en ny ID for det nye verket
Og jeg søker på navn til opphavsperson for det nye verket
viser trefflisten at personen har et verk fra før
Og trefflisten viser at personen har riktig nasjonalitet
Og trefflisten viser at personen har riktig levetid
# encoding: UTF-8
# language: no
Egenskap: Legge til utgivelsesautoriteter på utgivelse
Som katalogisator
For å gjøre det mulig for brukere å se utgivelsesinformasjon
Ønsker jeg å legge til utgiver, utgivelsessted og serie med nummerering på utgivelser
Scenario: Opprettelse av et sted
Når jeg vil lage et nytt sted
leverer systemet en ny ID for det nye stedet
Og jeg kan legge inn stedsnavn og land
Og grensesnittet viser at endringene er lagret
@wip
Scenario: Legge til sted i arbeidsflyt
Gitt at jeg har opprettet et sted
Og at jeg har opprettet en utgivelse i arbeidsflyten
Når jeg skriver inn sted i feltet for utgivelsessted og trykker enter
søker jeg opp sted og kan velge den jeg vil ha
Og utgivelsen er tilkoplet en sted
@wip
Scenario: Opprettelse av utgiver
Gitt at jeg er på utgiveropprettelsessida
Når jeg fyller ut feltet for utgivernavn
har jeg laget en ny utgiver