           gutter = description.gutter
           return description if gutter.name is gutterName
 
-      it "is an array with gutter descriptions appearing in order from left to right", ->
-        # TODO
+      describe "the array itself", ->
+        it "updates when gutters are added to the editor model, and keeps the gutters sorted by priority", ->
+          presenter = buildPresenter()
+          gutter1 = editor.addGutter({name: 'test-gutter-1', priority: -100, visible: true})
+          gutter2 = editor.addGutter({name: 'test-gutter-2', priority: 100, visible: false})
+
+          expectedGutterOrder = [gutter1, editor.gutterWithName('line-number'), gutter2]
+          for gutterDescription, index in presenter.getState().gutters
+            expect(gutterDescription.gutter).toEqual expectedGutterOrder[index]
+
+        it "updates when the visibility of a gutter changes", ->
+          presenter = buildPresenter()
+          gutter = editor.addGutter({name: 'test-gutter', visible: true})
+          expect(getStateForGutterWithName(presenter, 'test-gutter').visible).toBe true
+          gutter.hide()
+          expect(getStateForGutterWithName(presenter, 'test-gutter').visible).toBe false
+
+        it "updates when a gutter is removed", ->
+          presenter = buildPresenter()
+          gutter = editor.addGutter({name: 'test-gutter', visible: true})
+          expect(getStateForGutterWithName(presenter, 'test-gutter').visible).toBe true
+          gutter.destroy()
+          expect(getStateForGutterWithName(presenter, 'test-gutter')).toBeUndefined()
 
       describe "when gutter description corresponds to a custom gutter", ->
         # TODO

          gutter = description.gutter
          return description if gutter.name is 'line-number'

      describe ".maxLineNumberDigits", ->
        it "is set to the number of digits used by the greatest line number", ->
          presenter = buildPresenter()
          expect(editor.getLastBufferRow()).toBe 12

            expect(getStylesForGutterWithName(presenter, 'line-number').backgroundColor).toBe "rgba(0, 0, 255, 0)"
            expect(getStylesForGutterWithName(presenter, 'test-gutter').backgroundColor).toBe "rgba(0, 0, 255, 0)"

      # TODO
      describe ".customDecorations", ->
        [presenter, gutter, decorationItem, decorationParams] = []
        [marker1, decoration1, marker2, decoration2, marker3, decoration3] = []
