import { module, test } from 'qunit'; import EmberObject from '@ember/object'; import contributionGroupingKey from 'kredits-web/utils/contribution-grouping-key'; function makeContribution (url) { return EmberObject.create({ url }); } module('Unit | Utils | contribution-grouping-key', function() { test('returns the url when present', function(assert) { const c = makeContribution('https://github.com/67P/kredits-contracts/pull/196'); assert.equal(contributionGroupingKey(c), 'https://github.com/67P/kredits-contracts/pull/196'); }); test('returns the same key for identical github urls', function(assert) { const a = makeContribution('https://github.com/67P/kredits-contracts/pull/196'); const b = makeContribution('https://github.com/67P/kredits-contracts/pull/196'); assert.equal(contributionGroupingKey(a), contributionGroupingKey(b)); }); test('returns the same key for identical gitea urls', function(assert) { const a = makeContribution('https://gitea.kosmos.org/kredits/kredits-web/issues/231'); const b = makeContribution('https://gitea.kosmos.org/kredits/kredits-web/issues/231'); assert.equal(contributionGroupingKey(a), contributionGroupingKey(b)); }); test('returns different keys for different urls', function(assert) { const a = makeContribution('https://github.com/67P/kredits-contracts/pull/196'); const b = makeContribution('https://github.com/67P/kredits-contracts/pull/197'); assert.notEqual(contributionGroupingKey(a), contributionGroupingKey(b)); }); test('returns null when url is empty', function(assert) { const c = makeContribution(''); assert.equal(contributionGroupingKey(c), null); }); test('returns null when url is null/undefined', function(assert) { assert.equal(contributionGroupingKey(makeContribution(null)), null); assert.equal(contributionGroupingKey(makeContribution(undefined)), null); }); test('returns null when contribution is null/undefined', function(assert) { assert.equal(contributionGroupingKey(null), null); assert.equal(contributionGroupingKey(undefined), null); }); });