WikiEducationFoundation/WikiEduDashboard

View on GitHub
test/utils/revision_utils.spec.js

Summary

Maintainability
A
0 mins
Test Coverage
import '../testHelper';
import { getReferencesAdded } from '../../app/assets/javascripts/utils/revision_utils';

const ORES_OBJECT = {
  1: { // wikidataRevision
    itemquality: { features: { 'feature.len(<datasource.wikidatawiki.revision.references>)': 15 } }
  },
  2: { // wikidataRevisionParent
    itemquality: { features: { 'feature.len(<datasource.wikidatawiki.revision.references>)': 13 } }
  },
  3: { // enwikiRevision
    articlequality: { features: { 'feature.wikitext.revision.ref_tags': 20 } }
  },
  4: { // enwikiRevisionParent
    articlequality: { features: { 'feature.wikitext.revision.ref_tags': 10 } }
  },
  5: { // enwikiRevisionNoORES
    articlequality: { features: { } }
  },
  6: { // frwikiRevision
    articlequality: { features: { 'feature.wikitext.revision.ref_tags': 10 } }
  },
  7: { // frwikiRevisionParent
    articlequality: { features: { 'feature.wikitext.revision.ref_tags': 10 } }
  },
  8: { // enwikiFirstRevisionNoReferences
    articlequality: { features: { 'feature.wikitext.revision.ref_tags': 0 } }
  },
};

const wikidataRevision = { revid: 1, wiki: { project: 'wikidata' }, parentid: 2 };
const wikidataRevisionParent = { revid: 2, wiki: { project: 'wikidata' }, parentid: 5 };
const enwikiRevision = { revid: 3, wiki: { project: 'wikipedia', language: 'en' }, parentid: 4 };
const enwikiRevisionParent = { revid: 4, wiki: { project: 'wikipedia', language: 'en' }, parentid: 0 };
const enwikiRevisionNoORES = { revid: 5, wiki: { project: 'wikipedia', language: 'en' } };
const frwikiRevision = { revid: 6, wiki: { project: 'wikipedia', language: 'fr' }, parentid: 7 };
const enwikiFirstRevisionNoReferences = { revid: 8, wiki: { project: 'wikipedia', language: 'en' }, parentid: 0 };

describe('gets references count for ', () => {
  test('first revision', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, enwikiRevisionParent);
    expect(referencesAdded).toBe(10);
   });
  test('revision with parent', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, enwikiRevision);
    expect(referencesAdded).toBe(10);
   });
  test('revision under wikidata', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, wikidataRevision);
    expect(referencesAdded).toBe(2);
   });
  test('revision with no ORES data', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, enwikiRevisionNoORES);
    expect(referencesAdded).not.toBeDefined();
   });
  test('revision with parent having no ORES data', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, wikidataRevisionParent);
    expect(referencesAdded).not.toBeDefined();
   });
  test('first revision having no references', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, enwikiFirstRevisionNoReferences);
    expect(referencesAdded).toBe(0);
   });
  test('revision which added 0 references', () => {
    const referencesAdded = getReferencesAdded(ORES_OBJECT, frwikiRevision);
    expect(referencesAdded).toBe(0);
   });
});