1. 29 Mar, 2017 7 commits
  2. 28 Mar, 2017 15 commits
  3. 27 Mar, 2017 9 commits
  4. 24 Mar, 2017 9 commits
    • Sean Roberts's avatar
      ef671dfe
    • Sean Roberts's avatar
      Branding fix app background height · bfd25250
      Sean Roberts authored
      bfd25250
    • Robert Knight's avatar
      Merge pull request #310 from hypothesis/reorganise-annotation-sync-tests · ce2509ba
      Robert Knight authored
      Reorganize annotation sync tests
      ce2509ba
    • Sean Hammond's avatar
      Improve AnnotationSync test names · 877fb348
      Sean Hammond authored
      Rename all the tests to better reflect what they actually test.
      
      Mostly replacing broadcast local event bus publisher proxying with
      "calls function", plus a couple of other clarifications.
      
      Before:
      
        AnnotationSync
          channel event handlers
            the "deleteAnnotation" event
              ✓ broadcasts the "annotationDeleted" event over the local event bus
              ✓ calls back with a formatted annotation
              ✓ removes an existing entry from the cache before the event is triggered
              ✓ removes the annotation from the cache
            the "loadAnnotations" event
              ✓ publishes the "annotationsLoaded" event
          event handlers
            the "beforeAnnotationCreated" event
              ✓ proxies the event over the bridge
              ✓ returns early if the annotation has a tag
      
      After:
      
        AnnotationSync
          #constructor
            when "deleteAnnotation" is published
              ✓ calls emit("annotationDeleted")
              ✓ calls the 'deleteAnnotation' event's callback function
              ✓ deletes any existing annotation from its cache before calling emit
              ✓ deletes any existing annotation from its cache
            when "loadAnnotations" is published
              ✓ calls emit("annotationsLoaded")
            when "beforeAnnotationCreated" is emitted
              ✓ calls bridge.call() passing the event
              if the annotation has a $tag
                ✓ does not call bridge.call()
      877fb348
    • Sean Hammond's avatar
      Reorganize AnnotationSync tests by method · 90535d22
      Sean Hammond authored
      If the tests are grouped according to what class / method / function
      they're testing, then it's a lot easier to see what is being tested and
      what isn't, and it's easier to find the tests for `foo()` or to know where
      to put new tests for `foo()`.
      
      On the other hand when you names tests like
      `describe('channel event handlers',` `describe('event handlers',`
      `describe('the "loadAnnotations" event',`,
      `describe('the "deleteAnnotation" event',` etc then it can be a lot
      harder for a reader coming along later to understand how the tests are
      organized and how this organization relates to the code itself.
      
      Most of the examples on https://mochajs.org/ use this style of
      organizing tests:
      
          describe('Array', function() {
            describe('#indexOf()', function() {
              it(...
              ...
            });
      
            describe('#concat()', function () {
              it(...
              ...
            });
      
            describe('#slice()', function () {
              it(...
              ...
            });
      
          describe('User', function() {
            describe('#save()', function() {
              it(...
      
          describe('Connection', function() {
            describe('#find()', function() {
              it(...
      
      This commit reorganizes the AnnotationSync tests along the same lines.
      
      I've also made use of Mocha's `context()` function to group tests
      **within a `describe()` for a method** by context. `context()` is just
      an alias for `describe()`, but it has different semantics. (This is
      also in line with how `context()` is used in the mochajs.org examples).
      90535d22
    • Robert Knight's avatar
      Remove unnecessary inputs from `<thread-list>` in stream/single annotation page · b2c4cf03
      Robert Knight authored
      In the stream and single annotation page it is not possible to select or
      focus an annotation since there is no associated page content, so
      these callback inputs can be left unset.
      b2c4cf03
    • Robert Knight's avatar
      Remove a couple of unused `<annotation>` inputs · fb9be026
      Robert Knight authored
      The `annotation` component does not declare `isSidebar` or `isLastReply`
      in its bindings so these properties are unused.
      fb9be026
    • Robert Knight's avatar
      Remove an unnecessary 'ng-cloak' directive · 07de2088
      Robert Knight authored
      This is no longer needed since the entire UI is rendered client-side.
      07de2088
    • Robert Knight's avatar
      Split "viewer" template into different templates for each app type · 4758d264
      Robert Knight authored
      In preparation for converting the controllers which provide the logic
      for the content area of the sidebar (below the top bar) into components,
      split up the viewer.html template into one template for each application
      type (sidebar, stream, single annotation page).
      
      This allows removing a number of conditionals from the components in
      each template.
      4758d264