import './index';

describe('Client', () => {
    describe('Component vnGeoPostcode', () => {
        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('vnGeoPostcode', {$element, $scope});
            controller.client = {id: 1101};
        }));

        describe('onAccept()', () => {
            it('should perform a POST query and show a success snackbar', () => {
                let params = {townFk: 1, provinceFk: 1, countryFk: 1, code: '46460'};
                controller.location = {townFk: 1, provinceFk: 1, countryFk: 1, code: '46460'};

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

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

                expect(controller.vnApp.showMessage).toHaveBeenCalledWith('The postcode has been created. You can save the data now');
            });
        });
    });
});