import './index';

describe('Client', () => {
    describe('Component vnGeoCity', () => {
        let controller;
        let $httpBackend;
        let $scope;

        beforeEach(ngModule('client'));

        beforeEach(inject(($componentController, _$httpBackend_, $rootScope) => {
            $httpBackend = _$httpBackend_;
            $scope = $rootScope.$new();
            const $element = angular.element('<vn-dialog></vn-dialog>');
            controller = $componentController('vnGeoCity', {$element, $scope});
            controller.client = {id: 1101};
        }));

        describe('onAccept()', () => {
            it('should perform a POST query and show a success snackbar', () => {
                let params = {name: 'Gotham City', provinceFk: 1};
                controller.city = {name: 'Gotham City', provinceFk: 1};

                jest.spyOn(controller.vnApp, 'showMessage');
                $httpBackend.expect('PATCH', `towns`, params).respond(200, params);

                controller.onAccept();
                $httpBackend.flush();

                expect(controller.vnApp.showMessage).toHaveBeenCalledWith('The city has been created');
            });
        });
    });
});