Skip to content

Commit

Permalink
Merge pull request #52 from duncdrum/housekeeping-47
Browse files Browse the repository at this point in the history
Housekeeping 47
  • Loading branch information
annekauf authored Jan 31, 2024
2 parents ae7ceb5 + b484b87 commit 8098151
Show file tree
Hide file tree
Showing 7 changed files with 109 additions and 301 deletions.
10 changes: 0 additions & 10 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,6 @@ jobs:
build: npm install
config: baseUrl=https://stabikat.de/search/
env: grepUntagged=true
spec: |
cypress/e2e/spec.cy.js
cypress/e2e/author.cy.js
cypress/e2e/reviews.cy.js
cypress/e2e/nested.cy.js
cypress/e2e/multi-lang-phrase.cy.js
cypress/e2e/place.cy.js
cypress/e2e/chronology.cy.js
cypress/e2e/topical.cy.js
cypress/e2e/duplicates.cy.js
# browser: firefox
# Lint Yaml
- name: Yaml Lint
Expand Down
77 changes: 44 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# sbb-relevance-test

Relevanztests für die Discovery Suche im K10+.
Relevanztests für die Discovery Suche der SBB.

See [Ziele.md](notes/Ziele.md)

Expand All @@ -22,62 +22,55 @@ v18.16.0

## Installation

Dieses Repo Klonen, und dann denn geklonten Ordner in Powershell öffnen:
Dieses Repo klonen, und dann denn geklonten Ordner in der Kommandozeile öffnen:

```powershell
npm i
```

### Konfiguration
### Installation (SBB)

Um direkt mit dem [Findex](https://github.com/gbv/findex-config) zu kommunizieren müssen die [Proxy Einstellungen](https://docs.cypress.io/guides/references/proxy-configuration) der Cypress Umgebung manuell angepasst werden.
1. Für die Installation via NPM müssen die [Proxy Einstellungen](https://docs.cypress.io/guides/references/proxy-configuration) der lokalen Umgebung manuell angepasst werden.

```powershell
$env:HTTP_PROXY = "http://proxy.spk-berlin.de:3128"
$env:HTTPS_PROXY = "HTTPS_PROXY=http://proxy-dev.spk-berlin.de:3128"
$env:HTTPS_PROXY = "http://proxy.spk-berlin.de:3128"
$env:NO_PROXY = "b-dev20220203-vufind-6, localhost, 127.0.0.1, 10.0.0.0/8, 172.16.200.0/24, 194.94.132.0/22, .sbb.spk-berlin.de, .staatsbibliothek-berlin.de, .dev.sbb.berlin, smb.museum, .pk.de"
```

Permanente Einrichtung des `http_proxy`:
2. Strikten SSL modus deaktivieren (einmalig)

Da der Proxy über `http` aufgerufen wird, muss unter Umständen der strikte ssl modus deaktiviert werden.

```powershell
setx HTTP_PROXY http://proxy.spk-berlin.de:3128
npm set strict-ssl false
```

Zugangsdaten für den `vf6_user` müssen in der `cypress.env.json` eingetragen werden:
3. Installation via NPM

```json
{
"vf6_user": {
"vf6_name": "root",
"vf6_pw": ""
},
"NO_PROXY": "b-dev20220203-vufind-6, localhost, 127.0.0.1, 10.0.0.0/8, 172.16.200.0/24, 194.94.132.0/22, .sbb.spk-berlin.de, .staatsbibliothek-berlin.de, .dev.sbb.berlin, smb.museum, .pk.de",
"HTTP_PROXY": "http://proxy.spk-berlin.de:3128"
}
Dieses Repo klonen, und dann die Kommandozeile in dem geklonten Ordner öffnen:

```powershell
npm i
```

## Benutzung

Zum ausführen der Tests:
Zum Ausführen der Tests den geklonten Ordner in der Kommandozeile öffnen:

Entweder in der Kommandozeile:
Ohne GUI:

```powershell
npx cypress run
```

Oder via Browser GUI modus:

Mit GUI:

```powershell
npx cypress open
```

Für die Reproduktion der CI Testläufe gegen den produktiven Stabikat der `simple.cs.js` spec:

```bash
CYPRESS_BASE_URL=https://stabikat.de/search/ npx cypress run --spec cypress/e2e/simple.cy.js --env grepUntagged=true
```
Per Default laufen die Tests gegen den [Vufind-6 Server](http://b-dev20220203-vufind-6/). Die `searchspecs.yml` befindet sich im Verzeichnis: `/var/www/vufind/local/config/vufind`

### Tagging

Expand All @@ -103,19 +96,33 @@ Wenn die nötigen Änderungen der `searchpsec.yaml` im Stabikat live gegangen si

Für Tests die in beiden Instanzen (noch) nicht laufen: `.skip`

### Yaml Prüfung
Für die Reproduktion der CI Testläufe gegen den produktiven Stabikat der `simple.cs.js` spec:

- Ändere `BASE_URL` zum [Stabikat](https://stabikat.de)
- Spezifiziere welche Testdatei via `--spec`, und
- nur Tests ohne tag, via `--env`

```bash
CYPRESS_BASE_URL=https://stabikat.de/search/ npx cypress run --spec cypress/e2e/simple.cy.js --env grepUntagged=true
```

Für weitere Optionen siehe [Cypress command-line](https://docs.cypress.io/guides/guides/command-line)

## Yaml Prüfung

Um die yaml Dateien im `vufind/` Ordner auf Syntaxfehler zu überprüfen:

```powershell
npm run lint
```

Dieser Test wird auf GitHub automatisch ausgeführt.

## Troubleshooting

### Cypress Browser Warning

Sollte ein eine Browser spezifische Warnung erscheinen, verhindern Windows Systemeinstellungen die automatisierte Nutzung des gewählten Browsers.
Sollte ein eine Browser spezifische Warnung erscheinen, verhindern Windows Systemeinstellungen die automatisierte Nutzung des gewählten Browsers.

```powershell
Cypress detected policy settings on your computer that may cause issues.
Expand All @@ -129,10 +136,14 @@ For more information, see https://on.cypress.io/bad-browser-policy

In diese Fällen müssen Tests in `Electron` ausgeführt werden.

### NPM Installationsprobleme
### Findex Availability

Da der Proxy über `http` aufgerufen wird, muss unter Umständen der strikte ssl modus deaktiviert werden.
Die Proxy Einstellungen für die direkte Kommunikation mit dem [Findex](https://github.com/gbv/findex-config) können in einer `cypress.env.json` hinterlegt werden.

```powershell
npm set strict-ssl false
```
```json
{
"NO_PROXY": "b-dev20220203-vufind-6, localhost, 127.0.0.1, 10.0.0.0/8, 172.16.200.0/24, 194.94.132.0/22, .sbb.spk-berlin.de, .staatsbibliothek-berlin.de, .dev.sbb.berlin, smb.museum, .pk.de",
"HTTP_PROXY": "http://proxy.spk-berlin.de:3128",
"HTTPS_PROXY": "http://proxy.spk-berlin.de:3128"
}
```
2 changes: 1 addition & 1 deletion cypress/e2e/duplicates.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ describe('duplicate entries', () => {
qs: {
lookfor: 'Todessymbolik',
type: 'allFields',
limit: '30'
limit: '40'
}
})
})
Expand Down
186 changes: 21 additions & 165 deletions cypress/e2e/known-Item.cy.js
Original file line number Diff line number Diff line change
@@ -1,166 +1,22 @@
const YAML = require('yamljs')


describe.skip('known item searches', () => {
// If using Testserver visit page
// before(() => {
// cy.readFile('vufind/searchspecs.yaml').then((str) => {
// parse the string into object literal
// const searchspec = YAML.parse(str)
// })

it('Newer should be higher', () => {
cy.visit('/', {
qs: {
q: 'Klaus Hurrelmann, Gudrun Quenzel: Lebensphase Jugend'
},
})
})

it('Newer should be higher', () => {
cy.visit('/', {
qs: {
q: 'Lehrbuch Organisationspsychologie'
},
})
})

// it('Parent before child', () => {
// cy.visit('/', {
// qs: {
// q: 'African American Review'
// },
// })
// })

it('child should be first when child is searched', () => {
cy.visit('/', {
qs: {
q: 'Journal of Comparative Law 2021'
},
})
})

it('Newest is first', () => {
cy.visit('/', {
qs: {
q: 'Alois Hahn Konstruktionen des Selbst'
},
})
})

it('primary before secondar work', () => {
cy.visit('/', {
qs: {
q: 'Die Organisierte Welt Internationale Beziehungen und Organisationsforschung'
},
})
})

it('primary before secondar work', () => {
cy.visit('/', {
qs: {
q: 'Young, Iris Marion (2002): Inclusion and Democracy. Oxford: Oxford University Press'
},
})
})
it('dupes', () => {
cy.visit('/', {
qs: {
q: 'The Law of nature in the thought of Hugo grotius'
},
})
})
it('exactness (mm)', () => {
cy.visit('/', {
qs: {
q: 'Boundary and the Making of Home'
},
})
})

it('author all fields', () => {
cy.visit('/', {
qs: {
q: 'glaser karin'
},
})
})
it('primary before secondar work', () => {
cy.visit('/', {
qs: {
q: '36 strategeme harro von senger'
},
})
})
it('linguistic context cjk', () => {
cy.visit('/', {
qs: {
q: '阎连科'
},
})
})
it('passes', () => {
cy.visit('/', {
qs: {
q: 'Samuel Scheidt'
},
})
})
it('passes', () => {
cy.visit('/', {
qs: {
q: 'Karte von Tschili und Schantung'
},
})
})
it('primary before secondar work', () => {
cy.visit('/', {
qs: {
q: 'Liberty manik'
},
})
})
it('Pro Print', () => {
cy.visit('/', {
qs: {
q: 'Sadeleer, Environmental principles. From political slogans to legal rules'
},
})
})
it('passes', () => {
cy.visit('/', {
qs: {
q: 'Selam Berlin Yade Kara'
},
})
})
it('strict search', () => {
cy.visit('/', {
qs: {
q: '"Corte, Justine del"'
},
})
})
it('parent before child', () => {
cy.visit('/', {
qs: {
q: 'Allg. polit. Nachrichten Organ Bergbau Hüttenbetrieb 1858-'
},
})
})
it('passes', () => {
cy.visit('/', {
qs: {
q: 'Die Organisierte Welt Internationale Beziehungen und Organisationsforschung'
},
})
})
it('data poverty', () => {
cy.visit('/', {
qs: {
q: 'Eight International Congress of Refrigeration'
},
})
})
describe('known item searches', () => {
// see #7
// see https://forum.sbb.spk-berlin.de/t/warum-erscheinen-diese-treffer-fur-meine-anfrage/5599

describe('Metzler-Lexikon Theatertheorie', () => {
beforeEach(() => {
cy.visit({
url: '/Results',
qs: {
lookfor: 'Metzler-Lexikon Theatertheorie',
type: 'allFields'
}
})
})

// I don't understand the reasoning behind the requirement
it('should find exactly two matches', () => {
cy.get('[id*="result"]')
.should('have.length', 2)
})
})
})
34 changes: 0 additions & 34 deletions cypress/e2e/simple-api.cy.js

This file was deleted.

Loading

0 comments on commit 8098151

Please sign in to comment.