mirror of
https://github.com/simstudioai/sim.git
synced 2026-10-25 09:34:44 +08:00
refactor(sim): consolidate record guards + pure utils into @sim/utils (#5061)
* feat(utils): add record guards and pure helpers to @sim/utils Add isRecordLike (loose, non-prototype-checked record guard) and sortObjectKeysDeep; relocate isPlainRecord (strict) and normalizeEmail into @sim/utils so they are reusable across apps and packages. Unit tests cover the loose-vs-strict distinction, deep key sorting, and email normalization. * refactor(sim): consolidate record guards and normalize helpers onto @sim/utils Replace ~55 re-implemented loose record guards with the canonical @sim/utils isRecordLike (and one strict site with isPlainRecord), and dedupe three normalize clusters: sortObjectKeysDeep (sanitization + copilot builders), normalizeToken (salesforce + servicenow triggers), and normalizeEmail. Array-allowing guards and domain-specific normalizers are intentionally left untouched. Pure refactor — identical predicates and transforms, no behavior change.
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* @vitest-environment node
|
||||
*/
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { isVersionedType, stripVersionSuffix, truncate } from './string.js'
|
||||
import { isVersionedType, normalizeEmail, stripVersionSuffix, truncate } from './string.js'
|
||||
|
||||
describe('truncate', () => {
|
||||
it('appends the suffix when the string exceeds the slice length', () => {
|
||||
@@ -55,3 +55,13 @@ describe('isVersionedType', () => {
|
||||
expect(isVersionedType('x')).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
describe('normalizeEmail', () => {
|
||||
it('trims surrounding whitespace and lowercases', () => {
|
||||
expect(normalizeEmail(' USER@Example.COM ')).toBe('user@example.com')
|
||||
})
|
||||
|
||||
it('leaves an already-normalized email unchanged', () => {
|
||||
expect(normalizeEmail('user@example.com')).toBe('user@example.com')
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user