From d55441f115fb4d9554b7690b1c3d2feafd21e753 Mon Sep 17 00:00:00 2001 From: duncdrum Date: Wed, 10 Jan 2024 17:55:29 +0100 Subject: [PATCH] fix(author): author searches see #14 #22 --- .github/workflows/test.yml | 2 + cypress/e2e/author.cy.js | 94 +++++++++++++--------------- cypress/e2e/multi-lang-phrase.cy.js | 3 +- notes/Ranking_Stabikat.xlsx | Bin 19848 -> 19947 bytes 4 files changed, 49 insertions(+), 50 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d7a1be5..d95d68f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,8 +26,10 @@ jobs: config: baseUrl=https://stabikat.de/search/ 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 # browser: firefox # Lint Yaml - name: Yaml Lint diff --git a/cypress/e2e/author.cy.js b/cypress/e2e/author.cy.js index e06bdd6..a7abc8f 100644 --- a/cypress/e2e/author.cy.js +++ b/cypress/e2e/author.cy.js @@ -1,6 +1,6 @@ describe('Author Search', () => { // see #14 - describe.only('glaser karin' , () => { + describe('glaser karin' , () => { beforeEach(() => { cy.visit({ url: '/Results', @@ -11,14 +11,11 @@ describe('Author Search', () => { }) }) - // Bei Author-Suche Autorenfeld boosten (gegenüber anderen Feldern, auch Titel) - it('should appear before child work', () => { + // erster Treffer von Autorin + it('first hit should be by the author', () => { cy.get('#result0') - .find('.media-type') - .contains(' Zeitschrift (gedruckt) ') - cy.get('#result1') - .find('.media-type') - .contains(' Band einer Zeitschrift/Zeitung ') + .find('.resultlist-data') + .contains('Karin Glaser') }) }) @@ -28,21 +25,19 @@ describe('Author Search', () => { url: '/Results', qs: { lookfor: '阎连科', - type: 'allFields' + type: 'Author' } }) }) - // (DP): 3 hits no child works as far as I can see - // PPN: 168000709 - it('first hit should be parent work', () => { - cy.get('[href*="168000709"]') - .should('exist') + // see #22 + it('CJK author search should return translations', () => { + cy.get('.record-list') + .contains('Yan, Lianke') }) }) describe('"Corte, Justine del"', () => { - // (DP): parent work not in top 20 beforeEach(() => { cy.visit({ url: '/Results', @@ -53,42 +48,41 @@ describe('Author Search', () => { }) }) - // TODO(DP): failing - // PPN: 521689139 - it('first hit should be parent work', () => { - cy.get('#result0') - .find('[href*="521689139"]') - .should('exist') - }) - - // TODO(DP): failing - it('first hit should not be child volume', () => { - cy.get('#result0') - .find('.media-type') - .should('not.contain', 'Band einer Zeitschrift/Zeitung') - .and('not.contain', 'Serial Volume') + it('strict search should only contain works by that author', () => { + cy.get('.resultlist-data') + .should('have.length.gte', 3) + .and('contain','Corte, Justine del') }) }) - describe('Andreas Gryphius' , () => { + describe('Samuel Scheidt' , () => { beforeEach(() => { cy.visit({ url: '/Results', qs: { - lookfor: 'Andreas Gryphius', - type: 'Author' + lookfor: 'Samuel Scheidt', + type: 'Author', + limit: '5' } }) }) - // Bei Author-Suche Autorenfeld boosten (gegenüber anderen Feldern, auch Titel) - it('should appear before child work', () => { - cy.get('#result0') - .find('.media-type') - .contains(' Zeitschrift (gedruckt) ') - cy.get('#result1') - .find('.media-type') - .contains(' Band einer Zeitschrift/Zeitung ') + // (DP): 182 (or 90?)works by author but 200 hits. + // within top 20 6 works unrelated to search 14 by author + // Top 5 in author search should all be by author + // see #28 + it.skip('TOP 5 should all be by author', () => { + cy.get('.resultlist-data') + .find('[href*=Author]') + .each(($el, index, $lis) => { + cy.wrap($el) + .contains('Scheidt, Samuel') + }) + .then(($lis) => { + cy.wrap($lis) + .should('have.length', '5') + }) + }) }) @@ -98,19 +92,21 @@ describe('Author Search', () => { url: '/Results', qs: { lookfor: 'oliver heaviside', - type: 'Author' + type: 'allFields' } }) }) - // Bei Author-Suche Autorenfeld boosten (gegenüber anderen Feldern, auch Titel) - it('should appear before child work', () => { - cy.get('#result0') - .find('.media-type') - .contains(' Zeitschrift (gedruckt) ') - cy.get('#result1') - .find('.media-type') - .contains(' Band einer Zeitschrift/Zeitung ') + it('should appear in each of top 20', () => { + cy.get('.resultlist') + .each(($el, index, $lis) => { + cy.wrap($el) + .contains('Heaviside', {matchCase: false}) + }) + .then(($lis) => { + cy.wrap($lis) + .should('have.length', '20') + }) }) }) }) \ No newline at end of file diff --git a/cypress/e2e/multi-lang-phrase.cy.js b/cypress/e2e/multi-lang-phrase.cy.js index 173bc5b..430002e 100644 --- a/cypress/e2e/multi-lang-phrase.cy.js +++ b/cypress/e2e/multi-lang-phrase.cy.js @@ -18,7 +18,8 @@ describe('Foreign language phrase search', () => { }) - it('en subject query matches en and ar', () => { + // see #27 + it.skip('en subject query matches en and ar', () => { cy.visit({ url: '/Results', qs: { diff --git a/notes/Ranking_Stabikat.xlsx b/notes/Ranking_Stabikat.xlsx index d39e59ae7cf8edc7af406415251b359bb3833a0f..5c274da2ced0d89ce0a7d5e30512b8311713af91 100644 GIT binary patch delta 10819 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 I%%7Y84`jp4z5oCK delta 10776 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