From 3b95dacd27d081392e76f478ecf4736ec952e31d Mon Sep 17 00:00:00 2001 From: Markus Sanin Date: Tue, 4 Jun 2024 08:02:59 +0200 Subject: [PATCH] Don't export private normalize & refactor tests --- ember-can/package.json | 3 +-- ember-can/rollup.config.mjs | 8 +------ .../src/{utils => -private}/normalize.ts | 0 ember-can/src/services/abilities.ts | 2 +- test-app/tests/addon/utils/normalize-test.js | 23 +++++++++++-------- 5 files changed, 17 insertions(+), 19 deletions(-) rename ember-can/src/{utils => -private}/normalize.ts (100%) diff --git a/ember-can/package.json b/ember-can/package.json index 2c106dc..22c7881 100644 --- a/ember-can/package.json +++ b/ember-can/package.json @@ -120,8 +120,7 @@ "app-js": { "./helpers/can.js": "./dist/_app_/helpers/can.js", "./helpers/cannot.js": "./dist/_app_/helpers/cannot.js", - "./services/abilities.js": "./dist/_app_/services/abilities.js", - "./utils/normalize.js": "./dist/_app_/utils/normalize.js" + "./services/abilities.js": "./dist/_app_/services/abilities.js" } }, "peerDependencies": { diff --git a/ember-can/rollup.config.mjs b/ember-can/rollup.config.mjs index f690118..80c5f04 100644 --- a/ember-can/rollup.config.mjs +++ b/ember-can/rollup.config.mjs @@ -22,21 +22,15 @@ export default { // See https://github.com/embroider-build/embroider/blob/main/docs/v2-faq.md#how-can-i-define-the-public-exports-of-my-addon addon.publicEntrypoints([ 'index.js', - 'computed.js', 'ability.ts', 'helpers/**/*.js', 'services/**/*.js', - 'utils/**/*.js', ]), // These are the modules that should get reexported into the traditional // "app" tree. Things in here should also be in publicEntrypoints above, but // not everything in publicEntrypoints necessarily needs to go here. - addon.appReexports([ - 'helpers/**/*.js', - 'services/**/*.js', - 'utils/**/*.js', - ]), + addon.appReexports(['helpers/**/*.js', 'services/**/*.js']), // Follow the V2 Addon rules about dependencies. Your code can import from // `dependencies` and `peerDependencies` as well as standard Ember-provided diff --git a/ember-can/src/utils/normalize.ts b/ember-can/src/-private/normalize.ts similarity index 100% rename from ember-can/src/utils/normalize.ts rename to ember-can/src/-private/normalize.ts diff --git a/ember-can/src/services/abilities.ts b/ember-can/src/services/abilities.ts index d77732b..8bc917d 100644 --- a/ember-can/src/services/abilities.ts +++ b/ember-can/src/services/abilities.ts @@ -2,7 +2,7 @@ import Service from '@ember/service'; import Ability, { type Model } from '../ability.ts'; import { assert } from '@ember/debug'; import { getOwner } from '@ember/application'; -import normalizeAbilityString from '../utils/normalize.ts'; +import normalizeAbilityString from '../-private/normalize.ts'; export default class AbilitiesService extends Service { /** diff --git a/test-app/tests/addon/utils/normalize-test.js b/test-app/tests/addon/utils/normalize-test.js index 1d6dbda..dda8259 100644 --- a/test-app/tests/addon/utils/normalize-test.js +++ b/test-app/tests/addon/utils/normalize-test.js @@ -1,19 +1,22 @@ import { test, module } from 'qunit'; import { setupTest } from 'ember-qunit'; -import normalize from 'ember-can/utils/normalize'; module('Addon | Util | normalize', function (hooks) { setupTest(hooks); test('normalizes basic combined string', function (assert) { - let norm = normalize('edit post'); + const ability = this.owner.lookup('service:abilities'); + + let norm = ability.parse('edit post'); assert.strictEqual(norm.propertyName, 'edit'); assert.strictEqual(norm.abilityName, 'post'); }); test('always singularize abilityName', function (assert) { - let norm = normalize('edit posts'); + const ability = this.owner.lookup('service:abilities'); + + let norm = ability.parse('edit posts'); assert.strictEqual(norm.propertyName, 'edit'); assert.strictEqual(norm.abilityName, 'post'); @@ -22,27 +25,29 @@ module('Addon | Util | normalize', function (hooks) { test('removes stopwords from combined string', function (assert) { let norm; - norm = normalize('manage members in project'); + const ability = this.owner.lookup('service:abilities'); + + norm = ability.parse('manage members in project'); assert.strictEqual(norm.propertyName, 'manageMembers'); assert.strictEqual(norm.abilityName, 'project'); - norm = normalize('add tags to post'); + norm = ability.parse('add tags to post'); assert.strictEqual(norm.propertyName, 'addTags'); assert.strictEqual(norm.abilityName, 'post'); - norm = normalize('remove tags from post'); + norm = ability.parse('remove tags from post'); assert.strictEqual(norm.propertyName, 'removeTags'); assert.strictEqual(norm.abilityName, 'post'); - norm = normalize('change colour of door'); + norm = ability.parse('change colour of door'); assert.strictEqual(norm.propertyName, 'changeColour'); assert.strictEqual(norm.abilityName, 'door'); - norm = normalize('set timezone for account'); + norm = ability.parse('set timezone for account'); assert.strictEqual(norm.propertyName, 'setTimezone'); assert.strictEqual(norm.abilityName, 'account'); - norm = normalize('comment on issues'); + norm = ability.parse('comment on issues'); assert.strictEqual(norm.propertyName, 'comment'); assert.strictEqual(norm.abilityName, 'issue'); });