           top: 10 * 4
         }
 
-    describe "when ::clientHeight changes", ->
-      it "updates the lines that are visible on screen", ->
-        presenter = new TextEditorPresenter(model: editor, clientHeight: 15, scrollTop: 15, lineHeight: 10, lineOverdrawMargin: 1)
-
-        line5 = editor.tokenizedLineForScreenRow(5)
-        expect(lineStateForScreenRow(presenter, 5)).toBeUndefined()
-
-        presenter.setClientHeight(35)
-
-        line1 = editor.tokenizedLineForScreenRow(1)
-        expectValues lineStateForScreenRow(presenter, 1), {
-          screenRow: 1
-          text: line1.text
-          tokens: line1.tokens
-          top: 10 * 1
-        }
-
-        line2 = editor.tokenizedLineForScreenRow(2)
-        expectValues lineStateForScreenRow(presenter, 2), {
-          screenRow: 2
-          text: line2.text
-          tokens: line2.tokens
-          top: 10 * 2
-        }
-
-        line3 = editor.tokenizedLineForScreenRow(3)
-        expectValues lineStateForScreenRow(presenter, 3), {
-          screenRow: 3
-          text: line3.text
-          tokens: line3.tokens
-          top: 10 * 3
-        }
-
-        line4 = editor.tokenizedLineForScreenRow(4)
-        expectValues lineStateForScreenRow(presenter, 4), {
-          screenRow: 4
-          text: line4.text
-          tokens: line4.tokens
-          top: 10 * 4
-        }
-
         line5 = editor.tokenizedLineForScreenRow(5)
         expectValues lineStateForScreenRow(presenter, 5), {
           screenRow: 5

          top: 10 * 5
        }

    describe "when ::lineHeight changes", ->
      it "updates the lines that are visible on screen", ->
        presenter = new TextEditorPresenter(model: editor, clientHeight: 15, scrollTop: 10, lineHeight: 10, lineOverdrawMargin: 0)

        line1 = editor.tokenizedLineForScreenRow(1)
        line2 = editor.tokenizedLineForScreenRow(2)
        line3 = editor.tokenizedLineForScreenRow(3)
        line4 = editor.tokenizedLineForScreenRow(4)
        line5 = editor.tokenizedLineForScreenRow(5)
        line6 = editor.tokenizedLineForScreenRow(6)

        expect(lineStateForScreenRow(presenter, 1)).toBeDefined()
        expect(lineStateForScreenRow(presenter, 2)).toBeDefined()
        expect(lineStateForScreenRow(presenter, 3)).toBeDefined()
        expect(lineStateForScreenRow(presenter, 4)).toBeUndefined()
        expect(lineStateForScreenRow(presenter, 5)).toBeUndefined()

        presenter.setLineHeight(5)

        expect(lineStateForScreenRow(presenter, 1)).toBeUndefined()

        expectValues lineStateForScreenRow(presenter, 2), {
          screenRow: 2
          text: line2.text
          tokens: line2.tokens
          top: 5 * 2
        }

        expectValues lineStateForScreenRow(presenter, 3), {
          screenRow: 3
          text: line3.text
          tokens: line3.tokens
          top: 5 * 3
        }

        expectValues lineStateForScreenRow(presenter, 4), {
          screenRow: 4
          text: line4.text
          tokens: line4.tokens
          top: 5 * 4
        }

        expectValues lineStateForScreenRow(presenter, 5), {
          screenRow: 5
          text: line5.text
          tokens: line5.tokens
          top: 5 * 5
        }

        expect(lineStateForScreenRow(presenter, 6)).toBeUndefined()

    describe "when the editor's content changes", ->


        line1 = editor.tokenizedLineForScreenRow(1)
        expectValues lineStateForScreenRow(presenter, 1), {
          text: line1.text
          tokens: line1.tokens
        }

        line2 = editor.tokenizedLineForScreenRow(2)
        expectValues lineStateForScreenRow(presenter, 2), {
          text: line2.text
          tokens: line2.tokens
        }

        line3 = editor.tokenizedLineForScreenRow(3)
        expectValues lineStateForScreenRow(presenter, 3), {
          text: line3.text
          tokens: line3.tokens
        }
