Skip to content

Latest commit

Β 

History

History
279 lines (263 loc) Β· 8.61 KB

File metadata and controls

279 lines (263 loc) Β· 8.61 KB

Validate

NicTool Object Validation

Description

Validation class for objects in NicTool. Analgous to Nictool/../*/Sanity in v2.

Test

> npm test

  group
    name
      βœ” accepts valid
      βœ” rejects missing name
      βœ” rejects too short
      βœ” rejects too long
      βœ” rejects invalid character: ~
      βœ” rejects invalid character: `
      βœ” rejects invalid character: !
      βœ” rejects invalid character: $
      βœ” rejects invalid character: %
      βœ” rejects invalid character: ^
      βœ” rejects invalid character: &
      βœ” rejects invalid character: *
      βœ” rejects invalid character: (
      βœ” rejects invalid character: )
      βœ” rejects invalid character: +
      βœ” rejects invalid character: =
      βœ” rejects invalid character: [
      βœ” rejects invalid character: ]
      βœ” rejects invalid character: \
      βœ” rejects invalid character: /
      βœ” rejects invalid character: |
      βœ” rejects invalid character: ?
      βœ” rejects invalid character: >
      βœ” rejects invalid character: <
      βœ” rejects invalid character: "
      βœ” rejects invalid character: :
      βœ” rejects invalid character: ;
      βœ” rejects invalid character: ,
      βœ” rejects invalid character: #
      βœ” rejects invalid character: {
      βœ” rejects invalid character: }
      βœ” rejects invalid character:

      βœ” rejects if first character is not alphanumeric: -test
      βœ” rejects if first character is not alphanumeric: _test
      βœ” rejects if first character is not alphanumeric: 'test
      βœ” rejects if first character is not alphanumeric: .test
      βœ” rejects if first character is not alphanumeric: @test

  nameserver
    name
      βœ” rejects missing
      βœ” accepts valid: good-ns.tld.
      βœ” accepts valid: a.b.c.
      βœ” accepts valid: host.tld.
      βœ” accepts valid: host.name.
      βœ” accepts valid: valid-ns.sld.
      βœ” accepts valid: wooki.tld.
      βœ” rejects invalid: -bad_ns
      βœ” rejects invalid: bad.-domain
      βœ” rejects invalid: host
      βœ” rejects invalid: bad_ns
      βœ” rejects invalid: ΓΌber
      βœ” rejects invalid: ns..somewhere.com.
      βœ” rejects invalid: ns.-something.com.
      βœ” rejects invalid: a.b~d.com.
      βœ” rejects invalid: a.b`d.com.
      βœ” rejects invalid: a.b!d.com.
      βœ” rejects invalid: a.b@d.com.
      βœ” rejects invalid: a.b$d.com.
      βœ” rejects invalid: a.b%d.com.
      βœ” rejects invalid: a.b^d.com.
      βœ” rejects invalid: a.b&d.com.
      βœ” rejects invalid: a.b*d.com.
      βœ” rejects invalid: a.b(d.com.
      βœ” rejects invalid: a.b)d.com.
      βœ” rejects invalid: a.b_d.com.
      βœ” rejects invalid: a.b+d.com.
      βœ” rejects invalid: a.b=d.com.
      βœ” rejects invalid: a.b[d.com.
      βœ” rejects invalid: a.b]d.com.
      βœ” rejects invalid: a.b\d.com.
      βœ” rejects invalid: a.b/d.com.
      βœ” rejects invalid: a.b|d.com.
      βœ” rejects invalid: a.b?d.com.
      βœ” rejects invalid: a.b>d.com.
      βœ” rejects invalid: a.b<d.com.
      βœ” rejects invalid: a.b"d.com.
      βœ” rejects invalid: a.b'd.com.
      βœ” rejects invalid: a.b:d.com.
      βœ” rejects invalid: a.b;d.com.
      βœ” rejects invalid: a.b,d.com.
      βœ” rejects invalid: a.b#d.com.
      βœ” rejects invalid: a.b{d.com.
      βœ” rejects invalid: a.b}d.com.
      βœ” rejects invalid: a.b d.com.
      βœ” rejects invalid: a.b
d.com.
    export_type
      βœ” rejects missing
      βœ” accepts valid: bind
      βœ” accepts valid: djbdns
      βœ” accepts valid: knot
      βœ” accepts valid: nsd
      βœ” accepts valid: maradns
      βœ” accepts valid: powerdns
      βœ” accepts valid: dynect
      βœ” rejects invalid: cryptic
      βœ” rejects invalid: fuzzy
      βœ” rejects invalid: yitizg
      βœ” rejects invalid: bin
      βœ” rejects invalid: djbs
      βœ” rejects invalid: DJB
      βœ” rejects invalid: BIND
      βœ” rejects invalid: NT
    nt_group_id
      βœ” accepts valid
      βœ” rejects missing
      βœ” accepts valid: 1
      βœ” rejects invalid: abc
    address
      βœ” accepts valid
      βœ” rejects missing
      βœ” accepts valid: 1.2.3.4
      βœ” rejects invalid: 1.x.2.3
      βœ” rejects invalid: .1.2.3
      βœ” rejects invalid: 1234.1.2.3
      βœ” rejects invalid: 256.2.3.4
      βœ” rejects invalid: 1.-.2.3
      βœ” rejects invalid: 1.2.3
      βœ” rejects invalid: 1.2
      βœ” rejects invalid: 1
      βœ” rejects invalid: 1.2.3.
      βœ” rejects invalid: -1.2.3.4
      βœ” rejects invalid: 1. .3.4
      βœ” rejects invalid: 1.2,3.4
      βœ” rejects invalid: 1.,.3.4
    ttl
      βœ” rejects missing

  shared
    ttl
      βœ” accepts valid
      βœ” rejects missing
      βœ” accepts valid: 0
      βœ” accepts valid: 3600
      βœ” accepts valid: 86401
      βœ” accepts valid: 2147483647
      βœ” rejects invalid: -299
      βœ” rejects invalid: -2592001
      βœ” rejects invalid: -2
      βœ” rejects invalid: -1
      βœ” rejects invalid: 2147483648
      βœ” rejects invalid: oops

  user
    username
      βœ” accepts valid
      βœ” rejects missing
      βœ” rejects too short
      βœ” rejects too long
      βœ” rejects invalid character: ~
      βœ” rejects invalid character: `
      βœ” rejects invalid character: !
      βœ” rejects invalid character: @
      βœ” rejects invalid character: $
      βœ” rejects invalid character: %
      βœ” rejects invalid character: ^
      βœ” rejects invalid character: &
      βœ” rejects invalid character: *
      βœ” rejects invalid character: (
      βœ” rejects invalid character: )
      βœ” rejects invalid character: +
      βœ” rejects invalid character: =
      βœ” rejects invalid character: [
      βœ” rejects invalid character: ]
      βœ” rejects invalid character: \
      βœ” rejects invalid character: /
      βœ” rejects invalid character: |
      βœ” rejects invalid character: ?
      βœ” rejects invalid character: >
      βœ” rejects invalid character: <
      βœ” rejects invalid character: "
      βœ” rejects invalid character: '
      βœ” rejects invalid character: :
      βœ” rejects invalid character: ;
      βœ” rejects invalid character: ,
      βœ” rejects invalid character: #
      βœ” rejects invalid character: {
      βœ” rejects invalid character: }
      βœ” rejects invalid character:

    email
      βœ” accepts valid
      βœ” rejects missing
      βœ” rejects invalid format
    password
      βœ” accepts a strong password
      βœ” rejects missing
      βœ” rejects too short password
      βœ” rejects most common password strings

  zone
    zone
      βœ” accepts valid
      βœ” rejects empty
      βœ” rejects invalid: thisis~atest.com.
      βœ” rejects invalid: thisis`atest.com.
      βœ” rejects invalid: thisis!atest.com.
      βœ” rejects invalid: thisis@atest.com.
      βœ” rejects invalid: thisis$atest.com.
      βœ” rejects invalid: thisis%atest.com.
      βœ” rejects invalid: thisis^atest.com.
      βœ” rejects invalid: thisis&atest.com.
      βœ” rejects invalid: thisis*atest.com.
      βœ” rejects invalid: thisis(atest.com.
      βœ” rejects invalid: thisis)atest.com.
      βœ” rejects invalid: thisis+atest.com.
      βœ” rejects invalid: thisis=atest.com.
      βœ” rejects invalid: thisis[atest.com.
      βœ” rejects invalid: thisis]atest.com.
      βœ” rejects invalid: thisis\atest.com.
      βœ” rejects invalid: thisis/atest.com.
      βœ” rejects invalid: thisis|atest.com.
      βœ” rejects invalid: thisis?atest.com.
      βœ” rejects invalid: thisis>atest.com.
      βœ” rejects invalid: thisis<atest.com.
      βœ” rejects invalid: thisis"atest.com.
      βœ” rejects invalid: thisis'atest.com.
      βœ” rejects invalid: thisis:atest.com.
      βœ” rejects invalid: thisis;atest.com.
      βœ” rejects invalid: thisis,atest.com.
      βœ” rejects invalid: thisis#atest.com.
      βœ” rejects invalid: thisis{atest.com.
      βœ” rejects invalid: thisis}atest.com.
      βœ” rejects invalid: thisis atest.com.
      βœ” rejects invalid: thisis
atest.com.
    nt_group_id
      βœ” accepts valid: 1
      βœ” rejects invalid:
      βœ” rejects invalid: 0
      βœ” rejects invalid: abc
    ttl
      βœ” rejects missing

  zone_record
    nt_zone_id
      βœ” accepts valid
      βœ” rejects missing
      βœ” rejects empty
      βœ” rejects invalid: abc
      βœ” rejects invalid: 0
    name
      βœ” accepts valid
      βœ” rejects missing
      βœ” rejects empty
      βœ” rejects invalid: a.m.
      βœ” rejects invalid: something.test.
    type
      βœ” rejects missing
      βœ” accepts valid: A
      βœ” accepts valid: AAAA
      βœ” accepts valid: PTR
      βœ” rejects invalid:
      βœ” rejects invalid: 0
      βœ” rejects invalid: abc
    ttl
      βœ” rejects missing


  229 passing (44ms)