Projekt

Obecné

Profil

Stáhnout (3.77 KB) Statistiky
| Větev: | Revize:
1 3a515b92 cagy
const test = require('tap').test
2
    , prr  = require('./')
3
4
test('test prr(o, key, value) form', function (t) {
5
  t.plan(2)
6
7
  var o = {}
8
  prr(o, 'foo', 'bar')
9
  t.equal(o.foo, 'bar', 'correct value')
10
  t.deepEqual(
11
      Object.getOwnPropertyDescriptor(o, 'foo')
12
    , {
13
          enumerable   : false
14
        , configurable : false
15
        , writable     : false
16
        , value        : 'bar'
17
      }
18
    , 'correct property descriptor'
19
  )
20
  t.end()
21
})
22
23
test('test prr(o, { key: value }) form', function (t) {
24
  t.plan(2)
25
26
  var o = {}
27
  prr(o, { foo: 'bar' })
28
29
  t.equal(o.foo, 'bar', 'correct value')
30
  t.deepEqual(
31
      Object.getOwnPropertyDescriptor(o, 'foo')
32
    , {
33
          enumerable   : false
34
        , configurable : false
35
        , writable     : false
36
        , value        : 'bar'
37
      }
38
    , 'correct property descriptor'
39
  )
40
  t.end()
41
})
42
43
test('test multiple key:value pairs', function (t) {
44
  var o = { foo: 'bar' }
45
46
  prr(o, { one: 'ONE', two: 'TWO', obj: { o: 'o' }})
47
48
  t.deepEqual(o, { foo: 'bar' }, 'properties are not enumerable')
49
  t.equal(o.one, 'ONE', 'correctly set property')
50
  t.equal(o.two, 'TWO', 'correctly set property')
51
  t.deepEqual(o.obj, { o: 'o' }, 'correctly set property')
52
53
  ;[ 'one', 'two', 'obj' ].forEach(function (p) {
54
    t.deepEqual(
55
        Object.getOwnPropertyDescriptor(o, p)
56
      , {
57
            enumerable   : false
58
          , configurable : false
59
          , writable     : false
60
          , value        : p == 'obj' ? { o: 'o' } : p.toUpperCase()
61
        }
62
      , 'correct property descriptor'
63
    )
64
  })
65
66
  t.end()
67
})
68
69
test('test descriptor options', function (t) {
70
  var o = {}
71
72
  prr(o, 'foo', 'bar', {
73
      enumerable   : true
74
    , configurable : false
75
  })
76
  t.equal(o.foo, 'bar', 'correct value')
77
  t.deepEqual(
78
      Object.getOwnPropertyDescriptor(o, 'foo')
79
    , {
80
          enumerable   : true
81
        , configurable : false
82
        , writable     : false
83
        , value        : 'bar'
84
      }
85
    , 'correct property descriptor'
86
  )
87
88
  prr(o, 'foo2', 'bar2', {
89
      enumerable   : true
90
    , configurable : true
91
    , writable     : false
92
  })
93
  t.equal(o.foo2, 'bar2', 'correct value')
94
  t.deepEqual(
95
      Object.getOwnPropertyDescriptor(o, 'foo2')
96
    , {
97
          enumerable   : true
98
        , configurable : true
99
        , writable     : false
100
        , value        : 'bar2'
101
      }
102
    , 'correct property descriptor'
103
  )
104
105
  prr(o, 'foo3', 'bar3', {
106
      enumerable   : true
107
    , configurable : true
108
    , writable     : true
109
  })
110
  t.equal(o.foo3, 'bar3', 'correct value')
111
  t.deepEqual(
112
      Object.getOwnPropertyDescriptor(o, 'foo3')
113
    , {
114
          enumerable   : true
115
        , configurable : true
116
        , writable     : true
117
        , value        : 'bar3'
118
      }
119
    , 'correct property descriptor'
120
  )
121
122
  t.end()
123
})
124
125
126
test('test descriptor options, string form', function (t) {
127
  var o = {}
128
129
  prr(o, 'foo', 'bar', 'e')
130
  t.equal(o.foo, 'bar', 'correct value')
131
  t.deepEqual(
132
      Object.getOwnPropertyDescriptor(o, 'foo')
133
    , {
134
          enumerable   : true
135
        , configurable : false
136
        , writable     : false
137
        , value        : 'bar'
138
      }
139
    , 'correct property descriptor'
140
  )
141
142
  prr(o, 'foo2', 'bar2', 'ec')
143
  t.equal(o.foo2, 'bar2', 'correct value')
144
  t.deepEqual(
145
      Object.getOwnPropertyDescriptor(o, 'foo2')
146
    , {
147
          enumerable   : true
148
        , configurable : true
149
        , writable     : false
150
        , value        : 'bar2'
151
      }
152
    , 'correct property descriptor'
153
  )
154
155
  prr(o, 'foo3', 'bar3', 'ecw')
156
  t.equal(o.foo3, 'bar3', 'correct value')
157
  t.deepEqual(
158
      Object.getOwnPropertyDescriptor(o, 'foo3')
159
    , {
160
          enumerable   : true
161
        , configurable : true
162
        , writable     : true
163
        , value        : 'bar3'
164
      }
165
    , 'correct property descriptor'
166
  )
167
168
  t.end()
169
})