@universal-ember/test-support 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ import type { Registry as ServiceRegistry } from '@ember/service';
2
+ export declare function getService<ServiceName extends keyof ServiceRegistry>(name: ServiceName): ServiceRegistry[ServiceName];
3
+ //# sourceMappingURL=get-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-service.d.ts","sourceRoot":"","sources":["../../src/container/get-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAKlE,wBAAgB,UAAU,CAAC,WAAW,SAAS,MAAM,eAAe,EAClE,IAAI,EAAE,WAAW,GAChB,eAAe,CAAC,WAAW,CAAC,CAU9B"}
@@ -1,2 +1,3 @@
1
1
  export { visitAllLinks } from './routing/visit-all.ts';
2
+ export { getService } from './container/get-service.ts';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"visit-all.d.ts","sourceRoot":"","sources":["../../src/routing/visit-all.ts"],"names":[],"mappings":"AAsBA,wBAAsB,aAAa,kBA2DlC"}
1
+ {"version":3,"file":"visit-all.d.ts","sourceRoot":"","sources":["../../src/routing/visit-all.ts"],"names":[],"mappings":"AAsBA,wBAAsB,aAAa,kBAyElC"}
@@ -0,0 +1,15 @@
1
+ import { assert } from '@ember/debug';
2
+ import { getContext } from '@ember/test-helpers';
3
+ import { getOwner } from '@ember/owner';
4
+
5
+ function getService(name) {
6
+ const context = getContext();
7
+ assert('Could not determine the context for the test', context);
8
+ const owner = context.owner || getOwner(context);
9
+ assert('Could not find the owner on the context', owner);
10
+ const service = owner.lookup(`service:${name}`);
11
+ return service;
12
+ }
13
+
14
+ export { getService };
15
+ //# sourceMappingURL=get-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-service.js","sources":["../../src/container/get-service.ts"],"sourcesContent":["import { assert } from '@ember/debug';\nimport type { Registry as ServiceRegistry } from '@ember/service';\nimport { getContext } from '@ember/test-helpers';\nimport { getOwner } from '@ember/owner';\nimport type Owner from '@ember/owner';\n\nexport function getService<ServiceName extends keyof ServiceRegistry>(\n name: ServiceName,\n): ServiceRegistry[ServiceName] {\n const context = getContext() as { owner?: Owner } | undefined;\n assert('Could not determine the context for the test', context);\n\n const owner = context.owner || getOwner(context);\n assert('Could not find the owner on the context', owner);\n\n const service = owner.lookup(`service:${name}`);\n\n return service;\n}\n"],"names":["getService","name","context","getContext","assert","owner","getOwner","service","lookup"],"mappings":";;;;AAMO,SAASA,UAAUA,CACxBC,IAAiB,EACa;AAC9B,EAAA,MAAMC,OAAO,GAAGC,UAAU,EAAmC,CAAA;AAC7DC,EAAAA,MAAM,CAAC,8CAA8C,EAAEF,OAAO,CAAC,CAAA;EAE/D,MAAMG,KAAK,GAAGH,OAAO,CAACG,KAAK,IAAIC,QAAQ,CAACJ,OAAO,CAAC,CAAA;AAChDE,EAAAA,MAAM,CAAC,yCAAyC,EAAEC,KAAK,CAAC,CAAA;EAExD,MAAME,OAAO,GAAGF,KAAK,CAACG,MAAM,CAAE,CAAA,QAAA,EAAUP,IAAK,CAAA,CAAC,CAAC,CAAA;AAE/C,EAAA,OAAOM,OAAO,CAAA;AAChB;;;;"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { visitAllLinks } from './routing/visit-all.js';
2
+ export { getService } from './container/get-service.js';
2
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -25,7 +25,20 @@ async function visitAllLinks() {
25
25
  returnTo = toVisit.changeReturnTo;
26
26
  continue;
27
27
  }
28
- const key = `${currentURL()}::${toVisit}`;
28
+
29
+ // In-page links are on the page we're already on.
30
+ // As long as we haven't already encountered an error,
31
+ // this is silly to check.
32
+ if (toVisit.startsWith('#')) {
33
+ continue;
34
+ }
35
+ const [nonHashPart] = toVisit.split('#');
36
+
37
+ // This was our first page, we've already been here
38
+ if (nonHashPart === '/') {
39
+ continue;
40
+ }
41
+ const key = `${currentURL()}::${nonHashPart}`;
29
42
  if (visited.has(key)) continue;
30
43
  const result = router.recognize(toVisit);
31
44
  if (!result) {
@@ -1 +1 @@
1
- {"version":3,"file":"visit-all.js","sources":["../../src/routing/visit-all.ts"],"sourcesContent":["import { assert as debugAssert } from '@ember/debug';\nimport {\n visit,\n find,\n getContext,\n click,\n currentURL,\n findAll,\n} from '@ember/test-helpers';\nimport QUnit from 'qunit';\nimport type Owner from '@ember/owner';\nimport type RouterService from '@ember/routing/router-service';\n\nfunction findInAppLinks(): string[] {\n return (findAll('a')\n ?.map((link) => link.getAttribute('href'))\n ?.filter((href) => !href?.startsWith('http'))\n .filter(Boolean) || []) as string[];\n}\n\nconst assert = QUnit.assert;\n\nexport async function visitAllLinks() {\n /**\n * string of \"on::target\"\n */\n const visited = new Set();\n let returnTo = '/';\n\n await visit(returnTo);\n\n const inAppLinks = findInAppLinks();\n const queue: (string | { changeReturnTo: string })[] = [...inAppLinks];\n\n const ctx = getContext() as unknown as { owner: Owner };\n const router = ctx?.owner?.lookup('service:router') as RouterService;\n\n debugAssert(`Could not find the router service`, router);\n\n while (queue.length > 0) {\n const toVisit = queue.shift();\n\n debugAssert(`Queue entries cannot be falsey`, toVisit);\n\n if (typeof toVisit === 'object' && toVisit !== null) {\n returnTo = toVisit.changeReturnTo;\n continue;\n }\n\n const key = `${currentURL()}::${toVisit}`;\n\n if (visited.has(key)) continue;\n\n const result = router.recognize(toVisit);\n\n if (!result) {\n assert.ok(\n true,\n `${toVisit} on page ${returnTo} is not recognized by this app and will be skipped`,\n );\n continue;\n }\n\n await visit(returnTo);\n\n const link = find(`a[href=\"${toVisit}\"]`);\n\n debugAssert(`link exists with ${toVisit}`, link);\n\n await click(link);\n assert.ok(\n currentURL().startsWith(toVisit),\n `Navigation was successful: to:${toVisit}, from:${returnTo}`,\n );\n visited.add(key);\n\n const links = findInAppLinks();\n\n queue.push({ changeReturnTo: currentURL() });\n queue.push(...links);\n }\n}\n"],"names":["findInAppLinks","findAll","map","link","getAttribute","filter","href","startsWith","Boolean","assert","QUnit","visitAllLinks","visited","Set","returnTo","visit","inAppLinks","queue","ctx","getContext","router","owner","lookup","debugAssert","length","toVisit","shift","changeReturnTo","key","currentURL","has","result","recognize","ok","find","click","add","links","push"],"mappings":";;;;AAaA,SAASA,cAAcA,GAAa;AAClC,EAAA,OAAQC,OAAO,CAAC,GAAG,CAAC,EAChBC,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,YAAY,CAAC,MAAM,CAAC,CAAC,EACxCC,MAAM,CAAEC,IAAI,IAAK,CAACA,IAAI,EAAEC,UAAU,CAAC,MAAM,CAAC,CAAC,CAC5CF,MAAM,CAACG,OAAO,CAAC,IAAI,EAAE,CAAA;AAC1B,CAAA;AAEA,MAAMC,MAAM,GAAGC,KAAK,CAACD,MAAM,CAAA;AAEpB,eAAeE,aAAaA,GAAG;AACpC;AACF;AACA;AACE,EAAA,MAAMC,OAAO,GAAG,IAAIC,GAAG,EAAE,CAAA;EACzB,IAAIC,QAAQ,GAAG,GAAG,CAAA;EAElB,MAAMC,KAAK,CAACD,QAAQ,CAAC,CAAA;AAErB,EAAA,MAAME,UAAU,GAAGhB,cAAc,EAAE,CAAA;AACnC,EAAA,MAAMiB,KAA8C,GAAG,CAAC,GAAGD,UAAU,CAAC,CAAA;AAEtE,EAAA,MAAME,GAAG,GAAGC,UAAU,EAAiC,CAAA;EACvD,MAAMC,MAAM,GAAGF,GAAG,EAAEG,KAAK,EAAEC,MAAM,CAAC,gBAAgB,CAAkB,CAAA;AAEpEC,EAAAA,QAAW,CAAE,CAAA,iCAAA,CAAkC,EAAEH,MAAM,CAAC,CAAA;AAExD,EAAA,OAAOH,KAAK,CAACO,MAAM,GAAG,CAAC,EAAE;AACvB,IAAA,MAAMC,OAAO,GAAGR,KAAK,CAACS,KAAK,EAAE,CAAA;AAE7BH,IAAAA,QAAW,CAAE,CAAA,8BAAA,CAA+B,EAAEE,OAAO,CAAC,CAAA;IAEtD,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIA,OAAO,KAAK,IAAI,EAAE;MACnDX,QAAQ,GAAGW,OAAO,CAACE,cAAc,CAAA;AACjC,MAAA,SAAA;AACF,KAAA;IAEA,MAAMC,GAAG,GAAI,CAAEC,EAAAA,UAAU,EAAG,CAAA,EAAA,EAAIJ,OAAQ,CAAC,CAAA,CAAA;AAEzC,IAAA,IAAIb,OAAO,CAACkB,GAAG,CAACF,GAAG,CAAC,EAAE,SAAA;AAEtB,IAAA,MAAMG,MAAM,GAAGX,MAAM,CAACY,SAAS,CAACP,OAAO,CAAC,CAAA;IAExC,IAAI,CAACM,MAAM,EAAE;MACXtB,MAAM,CAACwB,EAAE,CACP,IAAI,EACH,GAAER,OAAQ,CAAA,SAAA,EAAWX,QAAS,CAAA,kDAAA,CACjC,CAAC,CAAA;AACD,MAAA,SAAA;AACF,KAAA;IAEA,MAAMC,KAAK,CAACD,QAAQ,CAAC,CAAA;AAErB,IAAA,MAAMX,IAAI,GAAG+B,IAAI,CAAE,CAAUT,QAAAA,EAAAA,OAAQ,IAAG,CAAC,CAAA;AAEzCF,IAAAA,QAAW,CAAE,CAAmBE,iBAAAA,EAAAA,OAAQ,CAAC,CAAA,EAAEtB,IAAI,CAAC,CAAA;IAEhD,MAAMgC,KAAK,CAAChC,IAAI,CAAC,CAAA;AACjBM,IAAAA,MAAM,CAACwB,EAAE,CACPJ,UAAU,EAAE,CAACtB,UAAU,CAACkB,OAAO,CAAC,EAC/B,CAAA,8BAAA,EAAgCA,OAAQ,CAASX,OAAAA,EAAAA,QAAS,EAC7D,CAAC,CAAA;AACDF,IAAAA,OAAO,CAACwB,GAAG,CAACR,GAAG,CAAC,CAAA;AAEhB,IAAA,MAAMS,KAAK,GAAGrC,cAAc,EAAE,CAAA;IAE9BiB,KAAK,CAACqB,IAAI,CAAC;MAAEX,cAAc,EAAEE,UAAU,EAAC;AAAE,KAAC,CAAC,CAAA;AAC5CZ,IAAAA,KAAK,CAACqB,IAAI,CAAC,GAAGD,KAAK,CAAC,CAAA;AACtB,GAAA;AACF;;;;"}
1
+ {"version":3,"file":"visit-all.js","sources":["../../src/routing/visit-all.ts"],"sourcesContent":["import { assert as debugAssert } from '@ember/debug';\nimport {\n visit,\n find,\n getContext,\n click,\n currentURL,\n findAll,\n} from '@ember/test-helpers';\nimport QUnit from 'qunit';\nimport type Owner from '@ember/owner';\nimport type RouterService from '@ember/routing/router-service';\n\nfunction findInAppLinks(): string[] {\n return (findAll('a')\n ?.map((link) => link.getAttribute('href'))\n ?.filter((href) => !href?.startsWith('http'))\n .filter(Boolean) || []) as string[];\n}\n\nconst assert = QUnit.assert;\n\nexport async function visitAllLinks() {\n /**\n * string of \"on::target\"\n */\n const visited = new Set();\n let returnTo = '/';\n\n await visit(returnTo);\n\n const inAppLinks = findInAppLinks();\n const queue: (string | { changeReturnTo: string })[] = [...inAppLinks];\n\n const ctx = getContext() as unknown as { owner: Owner };\n const router = ctx?.owner?.lookup('service:router') as RouterService;\n\n debugAssert(`Could not find the router service`, router);\n\n while (queue.length > 0) {\n const toVisit = queue.shift();\n\n debugAssert(`Queue entries cannot be falsey`, toVisit);\n\n if (typeof toVisit === 'object' && toVisit !== null) {\n returnTo = toVisit.changeReturnTo;\n continue;\n }\n\n // In-page links are on the page we're already on.\n // As long as we haven't already encountered an error,\n // this is silly to check.\n if (toVisit.startsWith('#')) {\n continue;\n }\n\n const [nonHashPart] = toVisit.split('#');\n\n // This was our first page, we've already been here\n if (nonHashPart === '/') {\n continue;\n }\n\n const key = `${currentURL()}::${nonHashPart}`;\n\n if (visited.has(key)) continue;\n\n const result = router.recognize(toVisit);\n\n if (!result) {\n assert.ok(\n true,\n `${toVisit} on page ${returnTo} is not recognized by this app and will be skipped`,\n );\n continue;\n }\n\n await visit(returnTo);\n\n const link = find(`a[href=\"${toVisit}\"]`);\n\n debugAssert(`link exists with ${toVisit}`, link);\n\n await click(link);\n assert.ok(\n currentURL().startsWith(toVisit),\n `Navigation was successful: to:${toVisit}, from:${returnTo}`,\n );\n visited.add(key);\n\n const links = findInAppLinks();\n\n queue.push({ changeReturnTo: currentURL() });\n queue.push(...links);\n }\n}\n"],"names":["findInAppLinks","findAll","map","link","getAttribute","filter","href","startsWith","Boolean","assert","QUnit","visitAllLinks","visited","Set","returnTo","visit","inAppLinks","queue","ctx","getContext","router","owner","lookup","debugAssert","length","toVisit","shift","changeReturnTo","nonHashPart","split","key","currentURL","has","result","recognize","ok","find","click","add","links","push"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universal-ember/test-support",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "The default blueprint for Embroider v2 addons.",
5
5
  "keywords": [
6
6
  "ember-addon"