Не могу издеваться над google.maps.Map.getBounds.getSouthWest.lat () - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть приложение, которое использует google Maps API v3 js, и я пытаюсь передать ему модульные тесты. Проблема в том, что мне нужно смоделировать методы lat() и lng() метода map.getBounds.getSouthWest, но я не знаю, как это сделать правильно, поэтому компилятор говорит, что

map.getBounds (...). getSouthWest (...). lat не является функцией.

Это мой google-maps-mock (не завершена только картачасть здесь):

getMap = function() {
    var Map;
    Map = function(opts) {
    };
    Map.prototype.center = {
    lat: function() {
        return 0;
    },
    lng: function() {
        return 0;
    }
    };
    Map.prototype.controls = {
    TOP_CENTER: [],
    TOP_LEFT: [],
    TOP_RIGHT: [],
    LEFT_TOP: [],
    RIGHT_TOP: [],
    LEFT_CENTER: [],
    RIGHT_CENTER: [],
    LEFT_BOTTOM: [],
    RIGHT_BOTTOM: [],
    BOTTOM_CENTER: [],
    BOTTOM_LEFT: [],
    BOTTOM_RIGHT: []
    };
    Map.prototype.overlayMapTypes = new window.google.maps.MVCArray();
    Map.prototype.getControls = function() {
    return this.controls;
    };
    Map.prototype.setOpts = function() {
    };
    Map.prototype.setOptions = function() {
    };
    Map.prototype.setZoom = function() {
    };
    Map.prototype.panToBounds = function() {
    };
    Map.prototype.fitBounds = function() {
    };
    Map.prototype.setCenter = function() {
    };
    Map.prototype.getCoords = function() {
    if (Map.getCoords == null) {
        return {
        latitude: 47,
        longitude: -27
        };
    }
    };
    /* This method works */
    Map.prototype.getBounds = function() {
        if (Map.getBounds == null){
        return {
            bounds: [47,33,52,44],
            getNorthEast: function() {
                return [47,33];
            },
            getSouthWest: function() {
                return [52,44];
            }
        }
    }
    };
    /* This method doesn't work*/
    Map.prototype.getBounds.getSouthWest = function() {
        if (Map.getBounds.getSouthWest == null) {
            return {
                lat: function() {
                    return 47;
                },
                lng: function() {
                    return 33;
                }
            }
        }
    };
    /* This method doesn't work*/
    Map.prototype.getBounds.getNorthEast = function() {
      if (Map.getBounds.getNorthEast == null) {
          return {
                lat: function() {
                  return 52;
                },
                lng: function() {
                  return 44;
                }
          }
      }

  };
  return Map;
};
...