@typetron/framework 0.5.0 → 0.5.3

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 (197) hide show
  1. package/build/Database/EntityProxyHandler.js +2 -2
  2. package/build/Database/EntityProxyHandler.js.map +1 -1
  3. package/package.json +4 -7
  4. package/.eslintrc-old.js +0 -208
  5. package/Cache/Cache.ts +0 -13
  6. package/Cache/Stores/DatabaseStore.ts +0 -120
  7. package/Cache/Stores/FileStore.ts +0 -69
  8. package/Cache/Stores/MemoryStore.ts +0 -71
  9. package/Cache/index.ts +0 -5
  10. package/Cache/types.ts +0 -4
  11. package/Container/ClassResolver.ts +0 -106
  12. package/Container/Container.ts +0 -144
  13. package/Container/Contracts.ts +0 -3
  14. package/Container/Decorators.ts +0 -20
  15. package/Container/Metadata.ts +0 -16
  16. package/Container/Resolver.ts +0 -27
  17. package/Container/index.ts +0 -5
  18. package/Database/Clauses/Where.ts +0 -0
  19. package/Database/Connection.ts +0 -52
  20. package/Database/Decorators.ts +0 -142
  21. package/Database/Drivers/DatabaseDriver.ts +0 -37
  22. package/Database/Drivers/MySQL/Alter/index.ts +0 -55
  23. package/Database/Drivers/MySQL/ColumnDefinition.ts +0 -16
  24. package/Database/Drivers/MySQL/Create.ts +0 -47
  25. package/Database/Drivers/MySQL/MysqlDriver.ts +0 -123
  26. package/Database/Drivers/MySQL/Schema.ts +0 -82
  27. package/Database/Drivers/MySQL/index.ts +0 -13
  28. package/Database/Drivers/SQL/Schema.ts +0 -73
  29. package/Database/Drivers/SQL/Statements/Alter.ts +0 -22
  30. package/Database/Drivers/SQL/Statements/BaseStatement.ts +0 -55
  31. package/Database/Drivers/SQL/Statements/Delete.ts +0 -20
  32. package/Database/Drivers/SQL/Statements/Insert.ts +0 -24
  33. package/Database/Drivers/SQL/Statements/Select.ts +0 -55
  34. package/Database/Drivers/SQL/Statements/Update.ts +0 -33
  35. package/Database/Drivers/SQL/index.ts +0 -8
  36. package/Database/Drivers/SQLite/Create.ts +0 -45
  37. package/Database/Drivers/SQLite/Schema.ts +0 -54
  38. package/Database/Drivers/SQLite/SqliteDriver.ts +0 -144
  39. package/Database/Drivers/SQLite/index.ts +0 -15
  40. package/Database/Drivers/SchemaContract.ts +0 -11
  41. package/Database/Drivers/Statement.ts +0 -16
  42. package/Database/Drivers/index.ts +0 -4
  43. package/Database/Entity.ts +0 -377
  44. package/Database/EntityNotFoundError.ts +0 -5
  45. package/Database/EntityProxyHandler.ts +0 -43
  46. package/Database/EntityQuery.ts +0 -197
  47. package/Database/Expression.ts +0 -3
  48. package/Database/Fields.ts +0 -816
  49. package/Database/Helpers.ts +0 -12
  50. package/Database/List.ts +0 -71
  51. package/Database/Migrations/Migration.ts +0 -10
  52. package/Database/Migrations/MigrationHistory.ts +0 -20
  53. package/Database/Migrations/Migrator.ts +0 -122
  54. package/Database/Migrations/index.ts +0 -3
  55. package/Database/ORM/BaseRelationship.ts +0 -10
  56. package/Database/Query.ts +0 -374
  57. package/Database/Seeders/Seeder.ts +0 -3
  58. package/Database/Seeders/SeederManager.ts +0 -27
  59. package/Database/Seeders/index.ts +0 -2
  60. package/Database/StringExpression.ts +0 -9
  61. package/Database/Types.ts +0 -165
  62. package/Database/index.ts +0 -23
  63. package/Encryption/index.ts +0 -51
  64. package/Forms/Decorators.ts +0 -29
  65. package/Forms/Form.ts +0 -70
  66. package/Forms/FormFields.ts +0 -36
  67. package/Forms/index.ts +0 -3
  68. package/Framework/App.ts +0 -10
  69. package/Framework/Application.ts +0 -118
  70. package/Framework/Auth/Auth.ts +0 -122
  71. package/Framework/Auth/Authenticatable.ts +0 -9
  72. package/Framework/Auth/User.ts +0 -27
  73. package/Framework/Auth/index.ts +0 -29
  74. package/Framework/Config/AppConfig.ts +0 -25
  75. package/Framework/Config/AuthConfig.ts +0 -9
  76. package/Framework/Config/BaseConfig.ts +0 -9
  77. package/Framework/Config/CacheConfig.ts +0 -38
  78. package/Framework/Config/DatabaseConfig.ts +0 -21
  79. package/Framework/Config/MailConfig.ts +0 -30
  80. package/Framework/Config/index.ts +0 -6
  81. package/Framework/Middleware/AuthMiddleware.ts +0 -31
  82. package/Framework/Middleware/CorsMiddleware.ts +0 -32
  83. package/Framework/Middleware/StaticAssetsMiddleware.ts +0 -76
  84. package/Framework/Middleware/index.ts +0 -2
  85. package/Framework/Provider.ts +0 -9
  86. package/Framework/Providers/CacheProvider.ts +0 -28
  87. package/Framework/Providers/DatabaseProvider.ts +0 -36
  88. package/Framework/Providers/MailProvider.ts +0 -31
  89. package/Framework/Providers/WebsocketsProvider.ts +0 -120
  90. package/Framework/Resolvers/AuthResolver.ts +0 -23
  91. package/Framework/Resolvers/EntityResolver.ts +0 -41
  92. package/Framework/Resolvers/FormResolver.ts +0 -37
  93. package/Framework/RootDir.ts +0 -1
  94. package/Framework/index.ts +0 -8
  95. package/Frontend/Angular/index.ts +0 -24
  96. package/Frontend/Websockets/index.ts +0 -86
  97. package/Mail/MailAddress.ts +0 -4
  98. package/Mail/MailTransport.ts +0 -6
  99. package/Mail/Mailable.ts +0 -16
  100. package/Mail/Mailer.ts +0 -27
  101. package/Mail/PendingMail.ts +0 -68
  102. package/Mail/SentMessage.ts +0 -20
  103. package/Mail/Transports/MemoryTransport.ts +0 -13
  104. package/Mail/Transports/SendGridTransport.ts +0 -95
  105. package/Mail/index.ts +0 -3
  106. package/Models/Model.ts +0 -41
  107. package/Models/index.ts +0 -54
  108. package/Router/BaseController.ts +0 -7
  109. package/Router/Decorators.ts +0 -224
  110. package/Router/Guard.ts +0 -10
  111. package/Router/Http/Contracts.ts +0 -4
  112. package/Router/Http/ErrorHandler.ts +0 -45
  113. package/Router/Http/ErrorHandlerInterface.ts +0 -6
  114. package/Router/Http/Errors/HttpError.ts +0 -15
  115. package/Router/Http/Handler.ts +0 -183
  116. package/Router/Http/HttpRoute.ts +0 -110
  117. package/Router/Http/Middleware.ts +0 -7
  118. package/Router/Http/Request.ts +0 -225
  119. package/Router/Http/Response.ts +0 -35
  120. package/Router/Http/index.ts +0 -85
  121. package/Router/Metadata.ts +0 -34
  122. package/Router/Middleware.ts +0 -16
  123. package/Router/Request.ts +0 -65
  124. package/Router/Route.ts +0 -16
  125. package/Router/RouteNotFoundError.ts +0 -5
  126. package/Router/Router.ts +0 -35
  127. package/Router/Servers/index.ts +0 -6
  128. package/Router/Servers/node.ts +0 -49
  129. package/Router/Servers/uNetworking.ts +0 -151
  130. package/Router/Websockets/Handler.ts +0 -82
  131. package/Router/Websockets/Middleware.ts +0 -7
  132. package/Router/Websockets/Request.ts +0 -3
  133. package/Router/Websockets/WebsocketRoute.ts +0 -61
  134. package/Router/Websockets/index.ts +0 -57
  135. package/Router/Websockets/types.ts +0 -23
  136. package/Router/index.ts +0 -6
  137. package/Storage/File.ts +0 -30
  138. package/Storage/Image.ts +0 -19
  139. package/Storage/InvalidImage.ts +0 -3
  140. package/Storage/Storage.ts +0 -98
  141. package/Storage/index.ts +0 -4
  142. package/Storage/utils.ts +0 -18
  143. package/Support/Array.ts +0 -184
  144. package/Support/Math.ts +0 -12
  145. package/Support/Metadata.ts +0 -31
  146. package/Support/String.ts +0 -38
  147. package/Support/index.ts +0 -19
  148. package/Support/utils.ts +0 -7
  149. package/Testing/TestCase.ts +0 -193
  150. package/Validation/Rule.ts +0 -9
  151. package/Validation/RuleInterface.ts +0 -10
  152. package/Validation/Rules/Email.ts +0 -20
  153. package/Validation/Rules/FileExtension.ts +0 -21
  154. package/Validation/Rules/MaxLength.ts +0 -17
  155. package/Validation/Rules/MinLength.ts +0 -18
  156. package/Validation/Rules/Optional.ts +0 -18
  157. package/Validation/Rules/Required.ts +0 -29
  158. package/Validation/Validator.ts +0 -7
  159. package/Validation/index.ts +0 -12
  160. package/benchmark-index.js +0 -20
  161. package/benchmark.ts +0 -47
  162. package/tests/Cache/DatabaseStoreTest.ts +0 -110
  163. package/tests/Cache/FileStoreTest.ts +0 -93
  164. package/tests/Cache/MemoryStoreTest.ts +0 -92
  165. package/tests/Container/ContainerTest.ts +0 -336
  166. package/tests/Database/Drivers/MySQL/AlterTest.ts +0 -100
  167. package/tests/Database/Drivers/MySQL/CreateTest.ts +0 -39
  168. package/tests/Database/Drivers/MysqlDriverTest.ts +0 -140
  169. package/tests/Database/Drivers/SqliteDriverTest.ts +0 -126
  170. package/tests/Database/Entities/Article.ts +0 -21
  171. package/tests/Database/Entities/Profile.ts +0 -21
  172. package/tests/Database/Entities/Role.ts +0 -15
  173. package/tests/Database/Entities/User.ts +0 -35
  174. package/tests/Database/EntityRelationshipsTest.ts +0 -475
  175. package/tests/Database/EntityTest.ts +0 -202
  176. package/tests/Database/Migrations/RunnerTest.ts +0 -96
  177. package/tests/Database/Migrations/migrations/1.createUserTable.ts +0 -12
  178. package/tests/Database/Migrations/migrations/2.createArticlesTable.ts +0 -12
  179. package/tests/Database/QueryTest.ts +0 -573
  180. package/tests/Database/SchemaTest.ts +0 -32
  181. package/tests/Database/Seeders/RunnerTest.ts +0 -30
  182. package/tests/Database/Seeders/seeders/RandomSeeder.ts +0 -10
  183. package/tests/Database/utils.ts +0 -16
  184. package/tests/Forms/FormsTest.ts +0 -59
  185. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.ts +0 -129
  186. package/tests/Framework/Resolvers/EntityResolverTest.ts +0 -48
  187. package/tests/Framework/Router/RouterTest.ts +0 -33
  188. package/tests/Mail/MailerTest.ts +0 -76
  189. package/tests/Model/ModelTest.ts +0 -183
  190. package/tests/Router/HttpHandlerTest.ts +0 -72
  191. package/tests/Router/RequestTest.ts +0 -77
  192. package/tests/Router/WebSocketsHandlerTest.ts +0 -51
  193. package/tests/Storage/StorageTest.ts +0 -97
  194. package/tests/Support/ArrayTest.ts +0 -167
  195. package/tests/Support/StringTest.ts +0 -18
  196. package/tests/Validation/RulesTest.ts +0 -54
  197. package/types.d.ts +0 -8
@@ -1,77 +0,0 @@
1
- import { suite, test } from '@testdeck/mocha'
2
- import { expect } from 'chai'
3
- import { Http, Request } from '../../Router/Http'
4
- import { IncomingHttpHeaders } from 'http'
5
- import { File } from '../../Storage'
6
-
7
- @suite
8
- class RequestTest {
9
-
10
- private request: Request
11
-
12
- before() {
13
- this.request = new Request('http://example.com/test?name=value', Http.Method.GET)
14
- this.request.setHeadersLoader(() => {
15
- return {'content-type': 'text/html'}
16
- })
17
- this.request.getHeader = <T extends string | string[] | undefined>(name: keyof IncomingHttpHeaders | string): T => {
18
- return 'text/html' as T
19
- }
20
- }
21
-
22
- @test
23
- 'uri getter should return correct uri'() {
24
- expect(this.request.uri).to.equal('/test')
25
- }
26
-
27
- @test
28
- 'method getter should return correct method'() {
29
- expect(this.request.method).to.equal(Http.Method.GET)
30
- }
31
-
32
- // Assuming that the commented url getter is uncommented in your code
33
- @test
34
- 'url getter should return correct url'() {
35
- expect(this.request.url).to.equal('http://example.com/test?name=value')
36
- }
37
-
38
- @test
39
- 'query getter should parse and return correct query parameters'() {
40
- expect(this.request.query).to.deep.equal({name: 'value'})
41
- }
42
-
43
- @test
44
- 'cookies getter should parse and return correct cookies'() {
45
- expect(this.request.cookies).to.deep.equal({todo: 'parse cookies'})
46
- }
47
-
48
- @test
49
- 'body getter and setter should return and set body correctly'() {
50
- this.request.body = {test: 'data'}
51
- expect(this.request.body).to.deep.equal({test: 'data'})
52
- }
53
-
54
- @test
55
- 'files getter and setter should return and set files correctly'() {
56
- const dummyFile = { // Just a mock structure based on what you provided
57
- originalName: 'test.txt',
58
- directory: '/tmp',
59
- saved: true,
60
- path: '/tmp/test.txt'
61
- } as File
62
-
63
- this.request.files = {testFile: dummyFile}
64
- expect(this.request.files).to.deep.equal({testFile: dummyFile})
65
- }
66
-
67
- @test
68
- 'headers getter should return correct headers'() {
69
- expect(this.request.headers).to.deep.equal({'content-type': 'text/html'})
70
- }
71
-
72
- @test
73
- 'header value is returned'() {
74
- expect(this.request.getHeader('random header')).to.deep.equal('text/html')
75
- }
76
- }
77
-
@@ -1,51 +0,0 @@
1
- import { suite, test } from '@testdeck/mocha'
2
- import { Handler } from '../../Router/Websockets'
3
- import { expect } from 'chai'
4
- import { Container } from '@Typetron/Container'
5
- import { Action, Body, Controller } from '../../Router'
6
- import { Request } from '../../Router/Request'
7
-
8
- @suite
9
- class WebSocketsHandlerTest {
10
-
11
- @test
12
- 'gives error when two actions have the same path'() {
13
- const container = new Container()
14
-
15
- class Controller {
16
- list() {}
17
- }
18
-
19
- const router = container.get(Handler)
20
- router.addAction('list', Controller, 'list')
21
-
22
- expect(() => router.addAction('list', Controller, 'index')).to.throw(`There is already an action with the same name: 'list'`)
23
- }
24
-
25
- @test
26
- async 'returns the value from the @Body'() {
27
- const container = Container.getInstance()
28
-
29
- @Controller()
30
- class MyController {
31
- @Action()
32
- list(@Body() value: string) {
33
- return value
34
- }
35
-
36
- @Action()
37
- create(@Body() value: string) {
38
- return value
39
- }
40
- }
41
-
42
- const router = container.get(Handler)
43
-
44
- const listContent = await router.handle(container, new Request('list', 'test'))
45
- expect(listContent.body).to.be.equal('test')
46
-
47
- const createContent = await router.handle(container, new Request('create'))
48
- expect(createContent.body).to.be.equal(undefined)
49
- }
50
-
51
- }
@@ -1,97 +0,0 @@
1
- import { suite, test } from '@testdeck/mocha'
2
- import { File, Storage } from '../../Storage'
3
- import { expect } from 'chai'
4
- import * as path from 'path'
5
-
6
- const directory = './tests/Storage/.storage'
7
-
8
- @suite
9
- class StorageTest {
10
- storage = new Storage()
11
-
12
- @test
13
- async canReadFiles() {
14
- const file = new File('testFile.txt')
15
- file.directory = directory
16
- // Create the file before trying to save it
17
- await this.storage.put(path.join(directory, file.name), 'test content')
18
-
19
- const content = await this.storage.read(path.join(directory, file.name))
20
- expect(content).to.be.instanceOf(Buffer)
21
- expect(content.toString()).to.equal('test content')
22
- }
23
-
24
- @test
25
- async canCheckIfFileExists() {
26
- const file = new File('testFile.txt')
27
- file.directory = directory
28
- // Create the file before trying to save it
29
- await this.storage.put(path.join(directory, file.name), 'test content')
30
-
31
- const exists = await this.storage.exists(path.join(directory, file.name))
32
- expect(exists).to.be.true
33
- }
34
-
35
- @test
36
- async canSaveFiles() {
37
- const file = new File('testFile.txt')
38
- file.directory = directory
39
- // Create the file before trying to save it
40
- await this.storage.put(path.join(directory, file.name), 'test content')
41
- const savedFile = await this.storage.save(file, './tests/Storage/.storage/alternative.txt')
42
- expect(savedFile).to.be.instanceOf(File)
43
- expect(savedFile.name).to.equal(file.name)
44
- expect(await this.storage.exists(savedFile.path)).to.be.true
45
- }
46
-
47
- @test
48
- async canWriteToFile() {
49
- const filePath = path.join(directory, 'testFile.txt')
50
- const file = await this.storage.put(filePath, 'test content')
51
- expect(file).to.be.instanceOf(File)
52
- expect(file.name).to.equal('testFile.txt')
53
- const content = await this.storage.read(path.join(directory, file.name))
54
- expect(content).to.be.instanceOf(Buffer)
55
- expect(content.toString()).to.equal('test content')
56
- }
57
-
58
- @test
59
- async canCreateDirectory() {
60
- await this.storage.makeDirectory(directory)
61
- const exists = await this.storage.exists(directory)
62
- expect(exists).to.be.true
63
- }
64
-
65
- @test
66
- async canDeleteDirectory() {
67
- await this.storage.makeDirectory(directory)
68
- await this.storage.deleteDirectory(directory)
69
- const exists = await this.storage.exists(directory)
70
- expect(exists).to.be.false
71
- }
72
-
73
- @test
74
- async canDeleteFile() {
75
- const file = new File('testFile.txt')
76
- file.directory = directory
77
- // Create the file before trying to save it
78
- await this.storage.put(path.join(directory, file.name), 'test content')
79
-
80
- await this.storage.delete(path.join(directory, file.name))
81
- const exists = await this.storage.exists(path.join(directory, file.name))
82
- expect(exists).to.be.false
83
- }
84
-
85
- @test
86
- async cannotDeleteWithoutFileName() {
87
- try {
88
- // Attempt to delete a directory instead of a file
89
- await this.storage.delete(directory)
90
- throw new Error('Expected an error to be thrown, but none was thrown.')
91
- } catch (unknownError) {
92
- const error = unknownError as Error
93
- expect(error).to.be.instanceOf(Error)
94
- expect(error.message).to.equal('Can not delete because this path leads to a directory and not a file.')
95
- }
96
- }
97
- }
@@ -1,167 +0,0 @@
1
- import { expect } from 'chai'
2
- import { suite, test } from '@testdeck/mocha'
3
- import '../../Support'
4
-
5
- interface User {
6
- name: string;
7
- age: number;
8
- admin: boolean;
9
- }
10
-
11
- @suite
12
- class ArrayTest {
13
-
14
- joe = {
15
- name: 'Joe',
16
- age: 20,
17
- admin: false
18
- }
19
- doe = {
20
- name: 'Doe',
21
- age: 21,
22
- admin: true
23
- }
24
-
25
- users: User[] = []
26
-
27
- before() {
28
- this.users = [this.joe, this.doe]
29
- }
30
-
31
- @test
32
- empty() {
33
- expect([].empty()).to.be.equal(true)
34
- expect([1].empty()).to.be.equal(false)
35
- }
36
-
37
- @test
38
- findWhere() {
39
- expect(this.users.findWhere('name', 'Joe')).to.be.equal(this.joe)
40
- }
41
-
42
- @test
43
- pluck() {
44
- expect(this.users.pluck('name')).to.have.members([this.joe.name, this.doe.name])
45
- }
46
-
47
- @test
48
- remove() {
49
- this.users.remove(this.joe)
50
- expect(this.users).to.have.members([this.doe])
51
- }
52
-
53
- @test
54
- removeMany() {
55
- this.users.remove(this.joe, this.doe)
56
- expect(this.users).to.have.length(0)
57
- }
58
-
59
- @test
60
- where() {
61
- expect(this.users.where('name', this.joe.name)).to.have.members([this.joe])
62
- expect([this.joe].where('admin', false)).to.have.length(1)
63
- }
64
-
65
- @test
66
- whereNot() {
67
- expect(this.users.whereNot('name', this.joe.name)).to.have.members([this.doe])
68
- expect([this.doe].whereNot('admin', false)).to.have.length(1)
69
- }
70
-
71
- @test
72
- whereWithDefaultValue() {
73
- expect(this.users.where('admin')).to.have.members([this.doe])
74
- }
75
-
76
- @test
77
- whereIn() {
78
- expect(this.users.whereIn('name', [this.joe.name, this.doe.name])).to.have.members([this.joe, this.doe])
79
- }
80
-
81
- @test
82
- whereNotIn() {
83
- expect(this.users.whereNotIn('name', [this.joe.name])).to.have.members([this.doe])
84
- }
85
-
86
- @test
87
- first() {
88
- expect(this.users.first()).to.be.equal(this.joe)
89
- }
90
-
91
- @test
92
- groupBy() {
93
- expect(this.users.groupBy('age')).to.deep.equal({
94
- 20: [this.joe],
95
- 21: [this.doe],
96
- })
97
- }
98
-
99
- @test
100
- groupByCallback() {
101
- expect(this.users.groupBy(user => user.age)).to.deep.equal({
102
- 20: [this.joe],
103
- 21: [this.doe],
104
- })
105
- }
106
-
107
- @test
108
- uniqueValue() {
109
- const data = [1, 1, 2, 3]
110
- expect(data.unique()).to.be.deep.equal([1, 2, 3])
111
- }
112
-
113
- @test
114
- uniqueValueBasedOnKey() {
115
- const data = [
116
- {id: 1},
117
- {id: 1},
118
- ]
119
- expect(data.unique('id')).to.be.deep.equal([{id: 1}])
120
- }
121
-
122
- @test
123
- uniqueValueBasedOnCallback() {
124
- const data = [
125
- {age: 20},
126
- {age: 20},
127
- {age: 30},
128
- ]
129
- expect(data.unique(item => item.age)).to.be.deep.equal([{age: 20}, {age: 30}])
130
- }
131
-
132
- @test
133
- sumNumbers() {
134
- expect([1, 2, 3].sum()).to.be.equal(6)
135
- }
136
-
137
- @test
138
- sumObjectProperties() {
139
- expect(this.users.sum('age')).to.be.equal(this.joe.age + this.doe.age)
140
- }
141
-
142
- @test
143
- sumCallback() {
144
- expect(this.users.sum(user => user.age)).to.be.equal(this.joe.age + this.doe.age)
145
- }
146
-
147
- @test
148
- whenNotEmpty() {
149
- let index = false;
150
- [1].whenNotEmpty(() => index = true)
151
- expect(index).to.be.equal(true)
152
- }
153
-
154
- @test
155
- whenNotEmptyPassesTheArrayInTheCallback() {
156
- let index = false;
157
- [1, 2, 3].filter(i => i >= 2).whenNotEmpty(values => index = values.length === 2)
158
- expect(index).to.be.equal(true)
159
- }
160
-
161
- @test
162
- whenEmpty() {
163
- let index = false;
164
- [].whenEmpty(() => index = true)
165
- expect(index).to.be.equal(true)
166
- }
167
- }
@@ -1,18 +0,0 @@
1
- import { expect } from 'chai'
2
- import { suite, test } from '@testdeck/mocha'
3
-
4
- @suite
5
- class StringTest {
6
- @test
7
- shouldLimitStringAddingThreeDotsAtTheEnd() {
8
- expect('text'.limit(3)).to.be.equal('...')
9
- expect('texts'.limit(4)).to.be.equal('t...')
10
- expect('text'.limit(5)).to.be.equal('text')
11
- }
12
-
13
- @test
14
- shouldLimitStringWithCustomEnding() {
15
- expect('Testing this text'.limit(12, ' More...')).to.be.equal('Test More...')
16
- }
17
-
18
- }
@@ -1,54 +0,0 @@
1
- import { suite, test } from '@testdeck/mocha'
2
- import { Email } from '../../Validation'
3
- import { expect } from 'chai'
4
-
5
- @suite
6
- class RulesTest {
7
- @test
8
- shouldLimitStringAddingThreeDotsAtTheEnd() {
9
- const validEmails = [
10
- 'email@example.com',
11
- 'firstname.lastname@example.com',
12
- 'email@subdomain.example.com',
13
- 'firstname+lastname@example.com',
14
- 'email@123.123.123.123',
15
- 'email@[123.123.123.123]',
16
- '"email"@example.com',
17
- '1234567890@example.com',
18
- 'email@example-one.com',
19
- '_______@example.com',
20
- 'email@example.name',
21
- 'email@example.museum',
22
- 'email@example.co.jp',
23
- 'firstname-lastname@example.com',
24
- ]
25
- const invalidEmails = [
26
- 'plainaddress',
27
- '#@%^%#$@#$@#.com',
28
- '@example.com',
29
- 'Joe Smith <email@example.com>',
30
- 'email.example.com',
31
- 'email@example@example.com',
32
- '.email@example.com',
33
- 'email.@example.com',
34
- 'email..email@example.com',
35
- 'あいうえお@example.com',
36
- 'email@example.com (Joe Smith)',
37
- 'email@example',
38
- 'email@-example.com',
39
- 'email@example..com',
40
- 'Abc..123@example.com',
41
- ]
42
-
43
- const rule = new (Email())
44
-
45
- validEmails.forEach(email => {
46
- expect(rule.passes('', email), email).to.be.equal(true)
47
- })
48
-
49
- invalidEmails.forEach(email => {
50
- expect(rule.passes('', email), email).to.be.equal(false)
51
- })
52
- }
53
-
54
- }
package/types.d.ts DELETED
@@ -1,8 +0,0 @@
1
- declare module 'fast-url-parser' {
2
- export function parse(url: string): Url
3
-
4
- type Url = URL & {
5
- format(): string
6
- query: string
7
- }
8
- }