Тестирование работающего углового компонента - TypeError: $ (...). Somename не является функцией

У меня проблема при тестировании моего компонента - spec.ts - это автоматически сгенерированный файл, который я использую для тестирования. Что странно, так это то, что мои компоненты работают нормально - я тестировал это некоторое время, но каждый раз, когда я пытаюсь протестировать его как «тест запуска пряжи», я получаю ошибку:

HeadlessChrome 0.0.0 (Windows 10 0.0.0) DaterangepickerComponent should create FAILED
    TypeError: $(...).datepicker is not a function
        at DaterangepickerComponent.initializeDatepicker (./src/app/ifs/shared/daterangepicker/daterangepicker.component.ts?:70:45)
        at DaterangepickerComponent.ngAfterViewInit (./src/app/ifs/shared/daterangepicker/daterangepicker.component.ts?:64:14)
        at callProviderLifecycles (./node_modules/@angular/core/fesm5/core.js?:19323:18)
        at callElementProvidersLifecycles (./node_modules/@angular/core/fesm5/core.js?:19297:13)
        at callLifecycleHooksChildrenFirst (./node_modules/@angular/core/fesm5/core.js?:19287:29)
        at checkAndUpdateView (./node_modules/@angular/core/fesm5/core.js?:20223:5)
        at callWithDebugContext (./node_modules/@angular/core/fesm5/core.js?:21108:25)
        at Object.debugCheckAndUpdateView [as checkAndUpdateView] (./node_modules/@angular/core/fesm5/core.js?:20786:12)
        at ViewRef_.detectChanges (./node_modules/@angular/core/fesm5/core.js?:18595:22)
        at ComponentFixture._tick (./node_modules/@angular/core/fesm5/testing.js?:253:32)

Я действительно не знаю, почему я получаю это, хотя он отлично работает в приложении. Может быть, кто-то может дать мне совет, как это исправить.

component.spec.ts:

describe('DaterangepickerComponent',() => {
let component: DaterangepickerComponent;
let fixture: ComponentFixture;

beforeEach(async(() => {
TestBed.configureTestingModule({
  declarations: [ DaterangepickerComponent ],
    imports: [
        StoreModule.forRoot(appReducers),
        EffectsModule.forRoot([DatabaseEffects]),
        HttpClientModule,
        HttpClientTestingModule,
        ReactiveFormsModule,
        NgSelectModule,
        TranslateModule.forRoot({
            loader: {
                provide: TranslateLoader,
                useFactory: HttpLoaderFactory,
                deps: [HttpClient]
            }
        })
    ]
})
.compileComponents();
}));

beforeEach(() => {
fixture = TestBed.createComponent(DaterangepickerComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create',() => {
expect(component).toBeTruthy();
});
});

И вот как выглядит мой компонент, его обернутая библиотека bootstrap-datepicker для daterangepicker:

declare var $;


@Component({
selector: 'cb-daterangepicker',
templateUrl: './daterangepicker.component.html',
styleUrls: ['./daterangepicker.component.scss']
})
export class DaterangepickerComponent implements OnInit, AfterViewInit, OnChanges {

private _options: DatepickerOptions;
private _isLoaded: boolean;
private _datepicker: any;
private _startDate: string;
private _endDate: string;


@Input()
set datepickerOptions(value: DatepickerOptions) {
    this._options = value;
};

@Input()
set defaultStartDate(value: string) {
    this._startDate = value;
    this.updatePicker();
}

@Input()
set defaultEndDate(value: string) {
    this._endDate = value;
    this.updatePicker();
}

@Input()
range = new DateRange();

@Input()
clear$: Observable;

@Output()
rangeValue = new EventEmitter();


updatePicker() {

    if (!this._isLoaded) {
        this._isLoaded = true;
        this.initializeDatepicker();
    }

    $('#dateFrom').datepicker('setStartDate', this._startDate);
    $('#dateFrom').datepicker('setEndDate', this._endDate);

    $('#dateTo').datepicker('setEndDate', this._endDate);
    $('#dateTo').datepicker('setStartDate', this._startDate);

}

constructor() {
    this.onChangeDate = this.onChangeDate.bind(this);
}

ngOnInit() {
}

ngOnChanges(changes) {
}

ngOnDestroy() {
}

ngAfterViewInit(): void {
    this._isLoaded = true;
    this.initializeDatepicker();
}

initializeDatepicker() {
    if (!this._isLoaded) {
        return;
    }

    this._datepicker = $('#datepicker').datepicker(this._options);
    $('#dateFrom').datepicker('setDate', this._startDate);
    $('#dateTo').datepicker('setDate', this._endDate);
    this._datepicker.on('changeDate', this.onChangeDate);
}

onChangeDate() {
    this.range.startDate = $('#dateFrom').datepicker('getDate');
    this.range.endDate = $('#dateTo').datepicker('getDate');

    if (!this.range.startDate) {
        $('#dateFrom').datepicker('setDate', this._startDate);
    }

    this.rangeValue.emit(this.range)
}
}
0
de

Ответов нет

0
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

QA — вакансии и аналитика рынка вакансий
QA — вакансии и аналитика рынка вакансий
5 668 участник(ов)

Вакансии и поиск работы в сфере QA. Вопросы: @qa_ru Про деньги: @qa_fin При размещении вакансии указывать: - должность - компанию - требования к кандидату - условия и ЗП хэштеги: #город #типзанятости

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Angular — русскоговорящее сообщество
Angular — русскоговорящее сообщество
3 960 участник(ов)

Общаемся на темы Angular 4+, его экосистемы, TypeScript, NativeScript и т.д. По вопросам SSR, Angular Universal @angular_universal_ru См. также: @typescript_ru, @react_js, @nodejs_ru, @js_ru Вакансии и поиск работы: @javascript_jobs

QA — русскоговорящее сообщество
QA — русскоговорящее сообщество
3 625 участник(ов)

Общаемся про все виды тестирования и его автоматизацию. Без мата, грубостей и провокаций. События: @qaevents Вакансии: @qa_jobs Автоматизаторы: @qa_automation Слухи про компании: @qa_bad_company

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

QA juniors
QA juniors
2 720 участник(ов)

Добро пожаловать в чат джуниоров QA! Общаемся обо всём, что связано с тестированием и не только :) В чате царит дружественная атмосфера, поэтому общаемся без мата, грубостей. @qa_automation - автоматизация @serious_tester - для тестировщиков и QA

QA - Bad Company!
QA - Bad Company!
2 602 участник(ов)

Позитив и негатив про компании или курсы, куда не стоит идти работать или учиться, а куда стоит. За пиратский контент - бан. @qa_fin о деньгах Русскоговорящее сообщество: @qa_ru Флудилка: @qaFlood Вакансии: @qa_jobs Финансы: @qa_fin

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

QA — Автоматизация
QA — Автоматизация
2 434 участник(ов)

1. Обсуждение технологий автоматизированного тестирования 2. Помощь начинающим Ru-сообщество: @qa_ru Джуночат: @qajuniors Вакансии: @qa_jobs Финансы: @qa_fin Митапы и события: @qaevents Паблики: @serious_tester, @automation_remarks, @atinfo

QA - Finance
QA - Finance
1 347 участник(ов)

Чат о деньгах тестировщиков. ЗП, релокейты,оферы. @qa_bad_company - обсуждение компаний/курсов и карьерного роста для QA @qa_automation - авто QA Холивары, политика, религия-бан Реклама, спам, оскорбления - бан Для флуда используйте другой чат

TypeScript — русскоговорящее сообщество
TypeScript — русскоговорящее сообщество
1 161 участник(ов)

Общаемся на темы TypeScript и статической типизации. Вопросы, идеи, новости и реальный опыт.

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском