     atom.config.set('editor.simpleArray', ['a', 'b', 'c'])
     atom.config.set('editor.complexArray', ['a', 'b', {c: true}])
 
+    spyOn(atom.config, 'getSchema').andCallFake (keyPath) ->
+      if keyPath is 'core.enum'
+        type: 'integer'
+        default: 2
+        enum: [2, 4, 6, 8]
+
     panel = new GeneralPanel()
 
   it "automatically binds named fields to their corresponding config keys", ->
+    expect(getValueForId('core.enum')).toBe '4'
     expect(getValueForId('core.int')).toBe '22'
     expect(getValueForId('core.float')).toBe '0.1'
     expect(getValueForId('editor.boolean')).toBeTruthy()

    if element.is("input")
      element.prop('checked', value)
      element.change()
    else
      element.view().setText(value?.toString())
      window.advanceClock(10000) # wait for contents-modified to be triggered

  beforeEach ->
    atom.config.set('core.int', 22)
    atom.config.set('core.float', 0.1)
    atom.config.set('editor.boolean', true)

    atom.config.set('editor.object.int', 6)
    atom.config.set('editor.object.string', 'hi')

    expect(getValueForId('core.enum')).toBe '6'
    expect(getValueForId('core.int')).toBe '222'
    expect(getValueForId('core.float')).toBe '0.11'
    expect(getValueForId('editor.boolean')).toBeFalsy()
