Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Housekeeping 47 #52

Merged
merged 6 commits into from
Jan 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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