const scopeQuery = require('../../../examples/lib/scopeQuery');
describe('scopeQuery Method', function() {
beforeAll(() => {
const { JSDOM } = require('jsdom');
var { window } = new JSDOM(`
Child1
Child2
Child3
Child4
Child5
Child6
Child1Scope2
Child2Scope2
Child3Scope2
Child4Scope2
Child5Scope2
`);
const { document } = window;
global.window = window;
global.document = document;
const $ = global.jQuery = global.$ = require('jquery');
});
it('scope 1 querySelector', function() {
const $scope1 = scopeQuery.scopeSelector(document.querySelector('#scope1'));
const $scope1All = scopeQuery.scopeSelectorAll(document.querySelector('#scope1'));
expect($scope1('.child').length).toBe(1);
expect($scope1All('.child').length).toBe(6);
expect($scope1('#child1').text()).toBe('Child1');
expect($scope1('#child2').text()).toBe('Child2');
expect($scope1All('#child1').text()).toBe('Child1');
expect($scope1All('#child2').text()).toBe('Child2');
expect($scope1().elem('.child').length).toBe(1);
expect($scope1().elemAll('.child').length).toBe(6);
expect($scope1All().elem('.child').length).toBe(1);
expect($scope1All().elemAll('.child').length).toBe(6);
});
it('scope 2 querySelector', function() {
const $scope2 = scopeQuery.scopeSelector(document.querySelector('#scope2'));
const $scope2All = scopeQuery.scopeSelectorAll(document.querySelector('#scope2'));
expect($scope2('.child').length).toBe(1);
expect($scope2All('.child').length).toBe(5);
expect($scope2('#child1').text()).toBe('Child1Scope2');
expect($scope2('#child2').text()).toBe('Child2Scope2');
expect($scope2All('#child1').text()).toBe('Child1Scope2');
expect($scope2All('#child2').text()).toBe('Child2Scope2');
expect($scope2().elem('.child').length).toBe(1);
expect($scope2().elemAll('.child').length).toBe(5);
expect($scope2All().elem('.child').length).toBe(1);
expect($scope2All().elemAll('.child').length).toBe(5);
});
});
global.document = null;
global.$ = null;
DOM = null;