dyo-tools 0.1.0-rc1

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.
Files changed (78) hide show
  1. package/.c8rc.json +4 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc.json +41 -0
  4. package/Makefile +34 -0
  5. package/README.md +0 -0
  6. package/TODO.md +18 -0
  7. package/babel.config.js +1 -0
  8. package/dist/core/DTBunch.d.ts +32 -0
  9. package/dist/core/DTBunch.js +283 -0
  10. package/dist/core/DTBunch.js.map +1 -0
  11. package/dist/core/DTComponent.d.ts +20 -0
  12. package/dist/core/DTComponent.js +41 -0
  13. package/dist/core/DTComponent.js.map +1 -0
  14. package/dist/core/DTComponentWithMeta.d.ts +9 -0
  15. package/dist/core/DTComponentWithMeta.js +32 -0
  16. package/dist/core/DTComponentWithMeta.js.map +1 -0
  17. package/dist/core/DTElement.d.ts +13 -0
  18. package/dist/core/DTElement.js +46 -0
  19. package/dist/core/DTElement.js.map +1 -0
  20. package/dist/core/DTError.d.ts +13 -0
  21. package/dist/core/DTError.js +28 -0
  22. package/dist/core/DTError.js.map +1 -0
  23. package/dist/core/DTPlayer.d.ts +8 -0
  24. package/dist/core/DTPlayer.js +30 -0
  25. package/dist/core/DTPlayer.js.map +1 -0
  26. package/dist/index.d.ts +6 -0
  27. package/dist/index.js +16 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/tsconfig.tsbuildinfo +1321 -0
  30. package/dist/types/index.d.ts +58 -0
  31. package/dist/types/index.js +15 -0
  32. package/dist/types/index.js.map +1 -0
  33. package/dist/utils/filters.d.ts +6 -0
  34. package/dist/utils/filters.js +39 -0
  35. package/dist/utils/filters.js.map +1 -0
  36. package/docs/.nojekyll +1 -0
  37. package/docs/assets/highlight.css +22 -0
  38. package/docs/assets/icons.css +1043 -0
  39. package/docs/assets/icons.png +0 -0
  40. package/docs/assets/icons@2x.png +0 -0
  41. package/docs/assets/main.js +52 -0
  42. package/docs/assets/search.js +1 -0
  43. package/docs/assets/style.css +1388 -0
  44. package/docs/assets/widgets.png +0 -0
  45. package/docs/assets/widgets@2x.png +0 -0
  46. package/docs/classes/DTBunch.html +265 -0
  47. package/docs/classes/DTComponent.html +49 -0
  48. package/docs/classes/DTComponentWithMeta.html +73 -0
  49. package/docs/classes/DTElement.html +95 -0
  50. package/docs/classes/DTError.html +32 -0
  51. package/docs/classes/DTPlayer.html +86 -0
  52. package/docs/index.html +1 -0
  53. package/docs/modules.html +1 -0
  54. package/jest.config.js +6 -0
  55. package/package.json +41 -0
  56. package/src/core/DTBunch.ts +600 -0
  57. package/src/core/DTComponent.ts +135 -0
  58. package/src/core/DTComponentWithMeta.ts +62 -0
  59. package/src/core/DTElement.ts +96 -0
  60. package/src/core/DTError.ts +78 -0
  61. package/src/core/DTPlayer.ts +57 -0
  62. package/src/index.ts +7 -0
  63. package/src/types/index.ts +76 -0
  64. package/src/utils/filters.ts +64 -0
  65. package/test/core/DTBunch.double.ts +150 -0
  66. package/test/core/DTBunch.spec.ts +1374 -0
  67. package/test/core/DTComponent.double.ts +69 -0
  68. package/test/core/DTComponent.spec.ts +182 -0
  69. package/test/core/DTComponentWithMeta.double.ts +88 -0
  70. package/test/core/DTComponentWithMeta.spec.ts +112 -0
  71. package/test/core/DTElement.double.ts +27 -0
  72. package/test/core/DTElement.spec.ts +181 -0
  73. package/test/core/DTError.double.ts +43 -0
  74. package/test/core/DTError.spec.ts +106 -0
  75. package/test/core/DTPlayer.double.ts +49 -0
  76. package/test/core/DTPlayer.spec.ts +102 -0
  77. package/test/utils/filters.spec.ts +109 -0
  78. package/tsconfig.json +21 -0
@@ -0,0 +1,150 @@
1
+ import { jest } from '@jest/globals';
2
+ import { DTBunch } from '../../src';
3
+ import {
4
+ BunchMetaData,
5
+ HaileiMetaData,
6
+ IldressMetaData,
7
+ IMetaDataTest,
8
+ MaydenaMetaData,
9
+ MeldrineMetaData,
10
+ YssaliaMetaData,
11
+ } from './DTComponentWithMeta.double';
12
+ import DYOToolsElement from '../../src/core/DTElement';
13
+ import { DTBunchOptionsConstructor, DTElementToObject } from '../../src/types';
14
+ import { DTErrorStub } from './DTError.double';
15
+ import Mocked = jest.Mocked;
16
+
17
+ // Mocking extra Components for using with Bunch
18
+ jest.mock('../../src/core/DTElement');
19
+ jest.mock('../../src/core/DTError');
20
+ jest.mock('../../src/utils/filters');
21
+
22
+ // Global Variables
23
+ export const IDTest = 'DTBunch-id-1234567';
24
+ export const KeyTest = 'DTBunch-key-1234567';
25
+
26
+ // Default options
27
+ export const defaultOptions: DTBunchOptionsConstructor = {
28
+ errors: false,
29
+ uniqueKey: false,
30
+ inheritOwner: false,
31
+ replaceIndex: false,
32
+ virtualContext: false,
33
+ };
34
+
35
+ // Mock Constructor and parent methods for DTElement
36
+ export class DTBunchMock extends DTBunch<Mocked<DYOToolsElement<IMetaDataTest>>, IMetaDataTest> {
37
+ constructor(options: Partial<DTBunchOptionsConstructor> = {}) {
38
+ super();
39
+ this._id = IDTest;
40
+ this._key = KeyTest;
41
+ this._errors = [];
42
+ this._globalOptions = { ...defaultOptions, ...options };
43
+ this._items = [];
44
+ }
45
+
46
+ getComponentType(): string {
47
+ return this._componentType;
48
+ }
49
+
50
+ mockDefineItems(numberItems: number): void {
51
+ this._items = generateMockedElements(numberItems);
52
+ }
53
+
54
+ mockDefineOptions(options: Partial<DTBunchOptionsConstructor>): void {
55
+ this._globalOptions = { ...this._globalOptions, ...options };
56
+ }
57
+
58
+ mockDefineErrors(errors: Array<DTErrorStub>): void {
59
+ this._errors = errors;
60
+ }
61
+
62
+ mockItemGetter(index = 0): Mocked<DYOToolsElement<IMetaDataTest>> | undefined {
63
+ return this._items[index];
64
+ }
65
+
66
+ setManyMeta(metaValues: Partial<IMetaDataTest>) {
67
+ this._meta = BunchMetaData;
68
+ }
69
+ }
70
+
71
+ // Global constants for Mocked DTElements
72
+ export const HaileiIdTest = 'DTElement-id-Hailei';
73
+ export const HaileiKeyTest = 'DTElement-key-Hailei';
74
+ export const HaileiToObjectTest = { id: 'DTElement-id-Hailei', key: 'DTElement-key-Hailei', type: 'element' };
75
+ export const MeldrineIdTest = 'DTElement-id-Meldrine';
76
+ export const MeldrineKeyTest = 'DTElement-key-Meldrine';
77
+ export const MeldrineToObjectTest = { id: 'DTElement-id-Meldrine', key: 'DTElement-key-Meldrine', type: 'element' };
78
+ export const MaydenaIdTest = 'DTElement-id-Maydena';
79
+ export const MaydenaKeyTest = 'DTElement-key-Maydena';
80
+ export const MaydenaToObjectTest = { id: 'DTElement-id-Maydena', key: 'DTElement-key-Maydena', type: 'element' };
81
+ export const IldressIdTest = 'DTElement-id-Ildress';
82
+ export const IldressKeyTest = 'DTElement-key-Ildress';
83
+ export const IldressToObjectTest = { id: 'DTElement-id-Ildress', key: 'DTElement-key-Ildress', type: 'element' };
84
+ export const YssaliaIdTest = 'DTElement-id-Yssalia';
85
+ export const YssaliaKeyTest = 'DTElement-key-Yssalia';
86
+ export const YssaliaToObjectTest = { id: 'DTElement-id-Yssalia', key: 'DTElement-key-Yssalia', type: 'element' };
87
+
88
+ // Function to generate Mocked DTElement for use in parent
89
+ export const generateMockedElements = (numberElements: number): Array<Mocked<DYOToolsElement<IMetaDataTest>>> => {
90
+ const mockedElements = [];
91
+ const mockedData: Array<{ id: string, key: string, meta: IMetaDataTest, toObject: DTElementToObject<IMetaDataTest> }> = [
92
+ {
93
+ id: HaileiIdTest,
94
+ key: HaileiKeyTest,
95
+ meta: HaileiMetaData,
96
+ toObject: HaileiToObjectTest,
97
+ },
98
+ {
99
+ id: MeldrineIdTest,
100
+ key: MeldrineKeyTest,
101
+ meta: MeldrineMetaData,
102
+ toObject: MeldrineToObjectTest,
103
+ },
104
+ {
105
+ id: MaydenaIdTest,
106
+ key: MaydenaKeyTest,
107
+ meta: MaydenaMetaData,
108
+ toObject: MaydenaToObjectTest,
109
+ },
110
+ {
111
+ id: IldressIdTest,
112
+ key: IldressKeyTest,
113
+ meta: IldressMetaData,
114
+ toObject: IldressToObjectTest,
115
+ },
116
+ {
117
+ id: YssaliaIdTest,
118
+ key: YssaliaKeyTest,
119
+ meta: YssaliaMetaData,
120
+ toObject: YssaliaToObjectTest,
121
+ },
122
+ ];
123
+
124
+ for (let i = 0; i < numberElements; i++) {
125
+ const mockedElement = new DYOToolsElement() as Mocked<DYOToolsElement<IMetaDataTest>>;
126
+ const selectedMock = i % 5;
127
+
128
+ mockedElement.getId.mockReturnValue(`${mockedData[selectedMock].id}-${i}`);
129
+ mockedElement.getKey.mockReturnValue(mockedData[selectedMock].key);
130
+ mockedElement.getManyMeta.mockReturnValue(mockedData[selectedMock].meta);
131
+ mockedElement.setContext.mockImplementation(function (context) {
132
+ this._context = context;
133
+ });
134
+ mockedElement.getContext.mockImplementation(function () {
135
+ return this._context;
136
+ });
137
+ mockedElement.setOwner.mockImplementation(function (owner) {
138
+ this._owner = owner;
139
+ });
140
+ mockedElement.getOwner.mockImplementation(function () {
141
+ return this._owner;
142
+ });
143
+ mockedElement.copy.mockReturnValue(mockedElement);
144
+ mockedElement.toObject.mockReturnValue(mockedData[selectedMock].toObject);
145
+
146
+ mockedElements.push(mockedElement);
147
+ }
148
+
149
+ return mockedElements;
150
+ };