Best JavaScript code snippet using playwright-internal
inject.spec.js
Source:inject.spec.js
1import Vue from 'vue'2import { Observer } from 'core/observer/index'3import { isNative, isObject, hasOwn } from 'core/util/index'4import testObjectOption from '../../../helpers/test-object-option'56describe('Options provide/inject', () => {7 testObjectOption('inject')89 let injected10 const injectedComp = {11 inject: ['foo', 'bar'],12 render () {},13 created () {14 injected = [this.foo, this.bar]15 }16 }1718 beforeEach(() => {19 injected = null20 })2122 it('should work', () => {23 new Vue({24 template: `<child/>`,25 provide: {26 foo: 1,27 bar: false28 },29 components: {30 child: {31 template: `<injected-comp/>`,32 components: {33 injectedComp34 }35 }36 }37 }).$mount()3839 expect(injected).toEqual([1, false])40 })4142 it('should use closest parent', () => {43 new Vue({44 template: `<child/>`,45 provide: {46 foo: 1,47 bar: null48 },49 components: {50 child: {51 provide: {52 foo: 353 },54 template: `<injected-comp/>`,55 components: {56 injectedComp57 }58 }59 }60 }).$mount()6162 expect(injected).toEqual([3, null])63 })6465 it('provide function', () => {66 new Vue({67 template: `<child/>`,68 data: {69 a: 1,70 b: false71 },72 provide () {73 return {74 foo: this.a,75 bar: this.b76 }77 },78 components: {79 child: {80 template: `<injected-comp/>`,81 components: {82 injectedComp83 }84 }85 }86 }).$mount()8788 expect(injected).toEqual([1, false])89 })9091 it('inject with alias', () => {92 const injectAlias = {93 inject: {94 baz: 'foo',95 qux: 'bar'96 },97 render () {},98 created () {99 injected = [this.baz, this.qux]100 }101 }102103 new Vue({104 template: `<child/>`,105 provide: {106 foo: false,107 bar: 2108 },109 components: {110 child: {111 template: `<inject-alias/>`,112 components: {113 injectAlias114 }115 }116 }117 }).$mount()118119 expect(injected).toEqual([false, 2])120 })121122 it('inject before resolving data/props', () => {123 const vm = new Vue({124 provide: {125 foo: 1126 }127 })128129 const child = new Vue({130 parent: vm,131 inject: ['foo'],132 data () {133 return {134 bar: this.foo + 1135 }136 },137 props: {138 baz: {139 default () {140 return this.foo + 2141 }142 }143 }144 })145146 expect(child.foo).toBe(1)147 expect(child.bar).toBe(2)148 expect(child.baz).toBe(3)149 })150151 // GitHub issue #5194152 it('should work with functional', () => {153 new Vue({154 template: `<child/>`,155 provide: {156 foo: 1,157 bar: false158 },159 components: {160 child: {161 functional: true,162 inject: ['foo', 'bar'],163 render (h, context) {164 const { injections } = context165 injected = [injections.foo, injections.bar]166 }167 }168 }169 }).$mount()170171 expect(injected).toEqual([1, false])172 })173174 if (typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys)) {175 it('with Symbol keys', () => {176 const s = Symbol()177 const vm = new Vue({178 template: `<child/>`,179 provide: {180 [s]: 123181 },182 components: {183 child: {184 inject: { s },185 template: `<div>{{ s }}</div>`186 }187 }188 }).$mount()189 expect(vm.$el.textContent).toBe('123')190 })191192 it('should merge symbol provide from mixins (functions)', () => {193 const keyA = Symbol('foo')194 const keyB = Symbol('bar')195196 const mixinA = { provide: () => ({ [keyA]: 'foo' }) }197 const mixinB = { provide: () => ({ [keyB]: 'bar' }) }198 const child = {199 inject: {200 foo: keyA,201 bar: keyB202 },203 template: `<span/>`,204 created () {205 injected = [this.foo, this.bar]206 }207 }208 new Vue({209 mixins: [mixinA, mixinB],210 render (h) {211 return h(child)212 }213 }).$mount()214215 expect(injected).toEqual(['foo', 'bar'])216 })217 }218219 // GitHub issue #5223220 it('should work with reactive array', done => {221 const vm = new Vue({222 template: `<div><child></child></div>`,223 data () {224 return {225 foo: []226 }227 },228 provide () {229 return {230 foo: this.foo231 }232 },233 components: {234 child: {235 inject: ['foo'],236 template: `<span>{{foo.length}}</span>`237 }238 }239 }).$mount()240241 expect(vm.$el.innerHTML).toEqual(`<span>0</span>`)242 vm.foo.push(vm.foo.length)243 vm.$nextTick(() => {244 expect(vm.$el.innerHTML).toEqual(`<span>1</span>`)245 vm.foo.pop()246 vm.$nextTick(() => {247 expect(vm.$el.innerHTML).toEqual(`<span>0</span>`)248 done()249 })250 })251 })252253 it('should extend properly', () => {254 const parent = Vue.extend({255 template: `<span/>`,256 inject: ['foo']257 })258259 const child = parent.extend({260 template: `<span/>`,261 inject: ['bar'],262 created () {263 injected = [this.foo, this.bar]264 }265 })266267 new Vue({268 template: `<div><parent/><child/></div>`,269 provide: {270 foo: 1,271 bar: false272 },273 components: {274 parent,275 child276 }277 }).$mount()278279 expect(injected).toEqual([1, false])280 })281282 it('should merge from mixins properly (objects)', () => {283 const mixinA = { inject: { foo: 'foo' }}284 const mixinB = { inject: { bar: 'bar' }}285 const child = {286 mixins: [mixinA, mixinB],287 template: `<span/>`,288 created () {289 injected = [this.foo, this.bar]290 }291 }292 new Vue({293 provide: { foo: 'foo', bar: 'bar', baz: 'baz' },294 render (h) {295 return h(child)296 }297 }).$mount()298299 expect(injected).toEqual(['foo', 'bar'])300 })301302 it('should merge from mixins properly (arrays)', () => {303 const mixinA = { inject: ['foo'] }304 const mixinB = { inject: ['bar'] }305 const child = {306 mixins: [mixinA, mixinB],307 inject: ['baz'],308 template: `<span/>`,309 created () {310 injected = [this.foo, this.bar, this.baz]311 }312 }313 new Vue({314 provide: { foo: 'foo', bar: 'bar', baz: 'baz' },315 render (h) {316 return h(child)317 }318 }).$mount()319320 expect(injected).toEqual(['foo', 'bar', 'baz'])321 })322323 it('should merge from mixins properly (mix of objects and arrays)', () => {324 const mixinA = { inject: { foo: 'foo' }}325 const mixinB = { inject: ['bar'] }326 const child = {327 mixins: [mixinA, mixinB],328 inject: { qux: 'baz' },329 template: `<span/>`,330 created () {331 injected = [this.foo, this.bar, this.qux]332 }333 }334 new Vue({335 provide: { foo: 'foo', bar: 'bar', baz: 'baz' },336 render (h) {337 return h(child)338 }339 }).$mount()340341 expect(injected).toEqual(['foo', 'bar', 'baz'])342 })343344 it('should warn when injections has been modified', () => {345 const key = 'foo'346 const vm = new Vue({347 provide: {348 foo: 1349 }350 })351352 const child = new Vue({353 parent: vm,354 inject: ['foo']355 })356357 expect(child.foo).toBe(1)358 child.foo = 2359 expect(360 `Avoid mutating an injected value directly since the changes will be ` +361 `overwritten whenever the provided component re-renders. ` +362 `injection being mutated: "${key}"`).toHaveBeenWarned()363 })364365 it('should warn when injections cannot be found', () => {366 const vm = new Vue({})367 new Vue({368 parent: vm,369 inject: ['foo', 'bar'],370 created () {}371 })372 expect(`Injection "foo" not found`).toHaveBeenWarned()373 expect(`Injection "bar" not found`).toHaveBeenWarned()374 })375376 it('should not warn when injections can be found', () => {377 const vm = new Vue({378 provide: {379 foo: 1,380 bar: false,381 baz: undefined382 }383 })384 new Vue({385 parent: vm,386 inject: ['foo', 'bar', 'baz'],387 created () {}388 })389 expect(`Injection "foo" not found`).not.toHaveBeenWarned()390 expect(`Injection "bar" not found`).not.toHaveBeenWarned()391 expect(`Injection "baz" not found`).not.toHaveBeenWarned()392 })393394 it('should not warn when injection key which is not provided is not enumerable', () => {395 const parent = new Vue({ provide: { foo: 1 }})396 const inject = { foo: 'foo' }397 Object.defineProperty(inject, '__ob__', { enumerable: false, value: '__ob__' })398 new Vue({ parent, inject })399 expect(`Injection "__ob__" not found`).not.toHaveBeenWarned()400 })401402 // Github issue #6097403 it('should not warn when injections cannot be found but have default value', () => {404 const vm = new Vue({})405 new Vue({406 parent: vm,407 inject: {408 foo: { default: 1 },409 bar: { default: false },410 baz: { default: undefined }411 },412 created () {413 injected = [this.foo, this.bar, this.baz]414 }415 })416 expect(injected).toEqual([1, false, undefined])417 })418419 it('should support name alias and default together', () => {420 const vm = new Vue({421 provide: {422 FOO: 2423 }424 })425 new Vue({426 parent: vm,427 inject: {428 foo: { from: 'FOO', default: 1 },429 bar: { default: false },430 baz: { default: undefined }431 },432 created () {433 injected = [this.foo, this.bar, this.baz]434 }435 })436 expect(injected).toEqual([2, false, undefined])437 })438439 it('should use provided value even if inject has default', () => {440 const vm = new Vue({441 provide: {442 foo: 1,443 bar: false,444 baz: undefined445 }446 })447 new Vue({448 parent: vm,449 inject: {450 foo: { default: 2 },451 bar: { default: 2 },452 baz: { default: 2 }453 },454 created () {455 injected = [this.foo, this.bar, this.baz]456 }457 })458 expect(injected).toEqual([1, false, undefined])459 })460461 // Github issue #6008462 it('should merge provide from mixins (objects)', () => {463 const mixinA = { provide: { foo: 'foo' }}464 const mixinB = { provide: { bar: 'bar' }}465 const child = {466 inject: ['foo', 'bar'],467 template: `<span/>`,468 created () {469 injected = [this.foo, this.bar]470 }471 }472 new Vue({473 mixins: [mixinA, mixinB],474 render (h) {475 return h(child)476 }477 }).$mount()478479 expect(injected).toEqual(['foo', 'bar'])480 })481482 it('should merge provide from mixins (functions)', () => {483 const mixinA = { provide: () => ({ foo: 'foo' }) }484 const mixinB = { provide: () => ({ bar: 'bar' }) }485 const child = {486 inject: ['foo', 'bar'],487 template: `<span/>`,488 created () {489 injected = [this.foo, this.bar]490 }491 }492 new Vue({493 mixins: [mixinA, mixinB],494 render (h) {495 return h(child)496 }497 }).$mount()498499 expect(injected).toEqual(['foo', 'bar'])500 })501502 it('should merge provide from mixins (mix of objects and functions)', () => {503 const mixinA = { provide: { foo: 'foo' }}504 const mixinB = { provide: () => ({ bar: 'bar' }) }505 const mixinC = { provide: { baz: 'baz' }}506 const mixinD = { provide: () => ({ bam: 'bam' }) }507 const child = {508 inject: ['foo', 'bar', 'baz', 'bam'],509 template: `<span/>`,510 created () {511 injected = [this.foo, this.bar, this.baz, this.bam]512 }513 }514 new Vue({515 mixins: [mixinA, mixinB, mixinC, mixinD],516 render (h) {517 return h(child)518 }519 }).$mount()520521 expect(injected).toEqual(['foo', 'bar', 'baz', 'bam'])522 })523524 it('should merge provide from mixins and override existing keys', () => {525 const mixinA = { provide: { foo: 'foo' }}526 const mixinB = { provide: { foo: 'bar' }}527 const child = {528 inject: ['foo'],529 template: `<span/>`,530 created () {531 injected = [this.foo]532 }533 }534 new Vue({535 mixins: [mixinA, mixinB],536 render (h) {537 return h(child)538 }539 }).$mount()540541 expect(injected).toEqual(['bar'])542 })543544 it('should merge provide when Vue.extend', () => {545 const mixinA = { provide: () => ({ foo: 'foo' }) }546 const child = {547 inject: ['foo', 'bar'],548 template: `<span/>`,549 created () {550 injected = [this.foo, this.bar]551 }552 }553 const Ctor = Vue.extend({554 mixins: [mixinA],555 provide: { bar: 'bar' },556 render (h) {557 return h(child)558 }559 })560561 new Ctor().$mount()562563 expect(injected).toEqual(['foo', 'bar'])564 })565566 // #5913567 it('should keep the reactive with provide', () => {568 function isObserver (obj) {569 if (isObject(obj)) {570 return hasOwn(obj, '__ob__') && obj.__ob__ instanceof Observer571 }572 return false573 }574575 const vm = new Vue({576 template: `<div><child ref='child'></child></div>`,577 data () {578 return {579 foo: {},580 $foo: {},581 foo1: []582 }583 },584 provide () {585 return {586 foo: this.foo,587 $foo: this.$foo,588 foo1: this.foo1,589 bar: {},590 baz: []591 }592 },593 components: {594 child: {595 inject: ['foo', '$foo', 'foo1', 'bar', 'baz'],596 template: `<span/>`597 }598 }599 }).$mount()600 const child = vm.$refs.child601 expect(isObserver(child.foo)).toBe(true)602 expect(isObserver(child.$foo)).toBe(false)603 expect(isObserver(child.foo1)).toBe(true)604 expect(isObserver(child.bar)).toBe(false)605 expect(isObserver(child.baz)).toBe(false)606 })607608 // #6175609 it('merge provide properly from mixins', () => {610 const ProvideFooMixin = {611 provide: {612 foo: 'foo injected'613 }614 }615616 const ProvideBarMixin = {617 provide: {618 bar: 'bar injected'619 }620 }621622 const Child = {623 inject: ['foo', 'bar'],624 render (h) {625 return h('div', [`foo: ${this.foo}, `, `bar: ${this.bar}`])626 }627 }628629 const Parent = {630 mixins: [ProvideFooMixin, ProvideBarMixin],631 render (h) {632 return h(Child)633 }634 }635636 const vm = new Vue({637 render (h) {638 return h(Parent)639 }640 }).$mount()641642 expect(vm.$el.textContent).toBe(`foo: foo injected, bar: bar injected`)643 })644645 it('merge provide with object syntax when using Vue.extend', () => {646 const child = {647 inject: ['foo'],648 template: `<span/>`,649 created () {650 injected = this.foo651 }652 }653 const Ctor = Vue.extend({654 provide: { foo: 'foo' },655 render (h) {656 return h(child)657 }658 })659660 new Ctor().$mount()661662 expect(injected).toEqual('foo')663 })664665 // #7284666 it('should not inject prototype properties', () => {667 const vm = new Vue({668 provide: {}669 })670 new Vue({671 parent: vm,672 inject: ['constructor']673 })674 expect(`Injection "constructor" not found`).toHaveBeenWarned()675 })
...
add_masterfile.js
Source:add_masterfile.js
1$('#b_role').on('change', function(){2 var role = $(this).val();34 if(role == 'land_lord' || role == 'property_manager' || role == 'contractor' || role == 'supplier'){5 // alert('working');6 $('#account_no').removeAttr('disabled').val('');7 $('#bank_name').removeAttr('disabled').val('');8 $('#branch_name').removeAttr('disabled').val('');9 $('#pin_no').removeAttr('disabled').val('');10 }else if(role == 'tenant'){11 $('#account_no').attr('disabled', 'disabled').val('');12 $('#bank_name').attr('disabled', 'disabled').val('');13 $('#branch_name').attr('disabled', 'disabled').val('');14 $('#pin_no').attr('disabled', 'disabled').val('');15 }else if(role == 'staff'){16 $('#account_no').attr('disabled', 'disabled').val('');17 $('#bank_name').attr('disabled', 'disabled').val('');18 $('#branch_name').attr('disabled', 'disabled').val('');19 $('#pin_no').attr('disabled', 'disabled').val('');20 }21});2223$('#b_role').on('change', function(){24 var role = $(this).val();2526 if(role == 'tenant'){27 // alert('working');28 $('.skill_name').hide();29 $('#occupation').removeAttr('disabled').val('');30 $('#user_role').attr('readonly', 'readonly').val('72');31 }else if(role == 'land_lord'){32 $('.skill_name').hide();33 $('#occupation').attr('disabled', 'disabled').val('');34 $('#user_role').attr('readonly', 'readonly').val('68');35 }else if(role == 'contractor'){36 $('.skill_name').show();37 $('#occupation').attr('disabled', 'disabled').val('');38 $('#user_role').attr('readonly', 'readonly').val('69');39 }else if(role == 'property_manager'){40 $('.skill_name').hide();41 $('#occupation').attr('disabled', 'disabled').val('');42 $('#user_role').attr('readonly', 'readonly').val('66');43 }else if (role == 'supplier'){44 $('.skill_name').hide();45 $('#occupation').attr('disabled', 'disabled').val('');46 $('#user_role').attr('disabled', 'disabled').val('');47 }else if(role == 'staff'){48 $('.skill_name').hide();49 $('#occupation').attr('disabled','disabled').val('');50 // $('#user_role').attr('readonly', 'readonly').val('72');51 }5253});5455$('#b_role').on('change', function() {56 var role = $(this).val();57 if(role == 'contractor' || role== 'supplier'){58 $('.surname').text('Title').val('');59 $('.id_passport').text('Business No.').val('');60 $('.gender').hide();61 $('.firstname').hide();62 $('.middlename').hide();63 }else if('land_lord' || 'property_manager' || 'tenant'){64 $('.surname').text('Surname').val('');65 $('.id_passport').text('Id/Passport').val('');66 $('.gender').show();67 $('.firstname').show();68 $('.middlename').show();69 }70});717273$('#bank_name').on('change', function(){74 var bank_id = $(this).val();75 var data = { 'bank_id': bank_id };7677 if(bank_id != ''){78 $.ajax({79 url: '?num=722',80 type: 'POST',81 data: data,82 dataType: 'json',83 success: function(data){84 var branches = '<option value="">--Choose Branch--</option>';85 for(var i = 0; i < data.length; i++){86 branches += '<option value="'+data[i].branch_id+'">'+data[i].branch_name+'</option>';87 }88 $('#branch_name').html(branches);89 }90 });91 }92});9394// start form wizard validation95var FormWizard = function () {9697 var form1 = $('#form_sample_1');98 return {99 //main function to initiate the module100 init: function () {101 if (!jQuery().bootstrapWizard) {102 return;103 }104105 // default form wizard106 $('#form_wizard_1').bootstrapWizard({107 'nextSelector': '.button-next',108 'previousSelector': '.button-previous',109 onTabClick: function (tab, navigation, index) {110 alert('on tab click disabled');111 return false;112 },113 onNext: function (tab, navigation, index) {114 // validate115 var valid = Masterfile.validateMyWizard();116 if(!valid){117 return false;118 }119120 var total = navigation.find('li').length;121 var current = index + 1;122123 // validate address details124 if(current == 3){125 var valid2 = Masterfile2.validateMyWizard2();126 if(!valid2){127 return false;128 }129 }130131 // set wizard title132 $('.step-title', $('#form_wizard_1')).text('Step ' + (index + 1) + ' of ' + total);133 // set done steps134 jQuery('li', $('#form_wizard_1')).removeClass("done");135 var li_list = navigation.find('li');136 for (var i = 0; i < index; i++) {137 jQuery(li_list[i]).addClass("done");138 }139140 if (current == 1) {141 $('#form_wizard_1').find('.button-previous').hide();142 } else {143 $('#form_wizard_1').find('.button-previous').show();144 }145146 if (current >= total) {147 $('#form_wizard_1').find('.button-next').hide();148 $('#form_wizard_1').find('.button-submit').show();149 } else {150 $('#form_wizard_1').find('.button-next').show();151 $('#form_wizard_1').find('.button-submit').hide();152 }153 App.scrollTo($('.page-title'));154 },155 onPrevious: function (tab, navigation, index) {156 var total = navigation.find('li').length;157 var current = index + 1;158 // set wizard title159 $('.step-title', $('#form_wizard_1')).text('Step ' + (index + 1) + ' of ' + total);160 // set done steps161 jQuery('li', $('#form_wizard_1')).removeClass("done");162 var li_list = navigation.find('li');163 for (var i = 0; i < index; i++) {164 jQuery(li_list[i]).addClass("done");165 }166167 if (current == 1) {168 $('#form_wizard_1').find('.button-previous').hide();169 } else {170 $('#form_wizard_1').find('.button-previous').show();171 }172173 if (current >= total) {174 $('#form_wizard_1').find('.button-next').hide();175 $('#form_wizard_1').find('.button-submit').show();176 } else {177 $('#form_wizard_1').find('.button-next').show();178 $('#form_wizard_1').find('.button-submit').hide();179 }180181 App.scrollTo($('.page-title'));182 },183 onTabShow: function (tab, navigation, index) {184 var total = navigation.find('li').length;185 var current = index + 1;186 var $percent = (current / total) * 100;187 $('#form_wizard_1').find('.bar').css({188 width: $percent + '%'189 });190 }191 });192193 $('#form_wizard_1').find('.button-previous').hide();194 $('#form_wizard_1 .button-submit').click(function () {195 //alert('Finished! Hope you like it :)');196 }).hide();197 }198 };199}();200201//on tab next validations202var Masterfile = {203 validateMyWizard: function(){204 if($('#b_role').val() == ''){205 alert('You must provide a Business Role!');206 $('#b_role').focus();207 return false;208 }209210 var b_role = $('#b_role').val();211 switch(b_role){212 case 'tenant':213 // validation214 if($('#surname').val() == ''){215 alert('You Must Provide Surname!');216 $('#surname').focus();217 return false;218 }else if($('#firstname').val() == ''){219 alert('You Must Provide First Name!');220 $('#firstname').focus();221 return false;222 }else if($('#email').val() == ''){223 alert('You Must Provide Email!');224 $('#email').focus();225 return false;226 }else if($('#id_passport').val() == ''){227 alert('You Must Provide Id/Passport!');228 $('#id_passport').focus();229 return false;230 }else if($('#gender').val() == ''){231 alert('You Must Provide Gender!');232 $('#gender').focus();233 return false;234 }else if($('#occupation').val() == ''){235 alert('You Must Provide Tenant Occupation!');236 $('#occupation').focus();237 return false;238 }else if($('#customer_type_id').val() == ''){239 alert('You Must Provide Masterfile Type!');240 $('#customer_type_id').focus();241 return false;242 }else{243 return true;244 }245 break;246247 case 'land_lord':248 if($('#surname').val() == ''){249 alert('You Must Provide Surname!');250 $('#surname').focus();251 return false;252 }else if($('#firstname').val() == ''){253 alert('You Must Provide First Name!');254 $('#firstname').focus();255 return false;256 }else if($('#email').val() == ''){257 alert('You Must Provide Email!');258 $('#email').focus();259 return false;260 }else if($('#id_passport').val() == ''){261 alert('You Must Provide Id/Passport!');262 $('#id_passport').focus();263 return false;264 }else if($('#gender').val() == ''){265 alert('You Must Provide Gender!');266 $('#gender').focus();267 return false;268 }else if($('#customer_type_id').val() == ''){269 alert('You Must Provide Masterfile Type!');270 $('#customer_type_id').focus();271 return false;272 }else{273 return true;274 }275 break;276277 case 'supplier':278 if($('#surname').val() == ''){279 alert('You Must Provide the Title!');280 $('#surname').focus();281 return false;282 }else if($('#email').val() == ''){283 alert('You Must Provide Email!');284 $('#email').focus();285 return false;286 }else if($('#id_passport').val() == ''){287 alert('You Must Provide business Number!');288 $('#id_passport').focus();289 return false;290 }else if($('#customer_type_id').val() == ''){291 alert('You Must Provide Masterfile Type!');292 $('#customer_type_id').focus();293 return false;294 }else{295 return true;296 }297 break;298 case 'contractor':299 if($('#surname').val() == ''){300 alert('You Must Provide the Title!');301 $('#surname').focus();302 return false;303 }else if($('#email').val() == ''){304 alert('You Must Provide Email!');305 $('#email').focus();306 return false;307 }else if($('#id_passport').val() == ''){308 alert('You Must Provide business Number!');309 $('#id_passport').focus();310 return false;311 }else if($('#customer_type_id').val() == ''){312 alert('You Must Provide Masterfile Type!');313 $('#customer_type_id').focus();314 return false;315 }else if($('#skill_id').val() == ''){316 alert('You Must Provide Core Activity for the Contractor!');317 $('#skill_id').focus();318 return false;319 }else{320 return true;321 }322 break;323324 case 'property_manager':325 if($('#surname').val() == ''){326 alert('You Must Provide Surname of th Property Manager!');327 $('#surname').focus();328 return false;329 }else if($('#firstname').val() == ''){330 alert('You Must Provide First Name!');331 $('#firstname').focus();332 return false;333 }else if($('#email').val() == ''){334 alert('You Must Provide Email!');335 $('#email').focus();336 return false;337 }else if($('#id_passport').val() == ''){338 alert('You Must Provide Id/Passport!');339 $('#id_passport').focus();340 return false;341 }else if($('#gender').val() == ''){342 alert('You Must Provide Gender!');343 $('#gender').focus();344 return false;345 }else if($('#customer_type_id').val() == ''){346 alert('You Must Provide Masterfile Type!');347 $('#customer_type_id').focus();348 return false;349 }else{350 return true;351 }352 break;353 case 'staff':354 // validation355 if($('#surname').val() == ''){356 alert('You Must Provide Surname!');357 $('#surname').focus();358 return false;359 }else if($('#firstname').val() == ''){360 alert('You Must Provide First Name!');361 $('#firstname').focus();362 return false;363 }else if($('#email').val() == ''){364 alert('You Must Provide Email!');365 $('#email').focus();366 return false;367 }else if($('#id_passport').val() == ''){368 alert('You Must Provide Id/Passport!');369 $('#id_passport').focus();370 return false;371 }else if($('#gender').val() == ''){372 alert('You Must Provide Gender!');373 $('#gender').focus();374 return false;375 }else if($('#customer_type_id').val() == ''){376 alert('You Must Provide Masterfile Type!');377 $('#customer_type_id').focus();378 return false;379 }else{380 return true;381 }382 break;383 }384 },385}386387// masterfile address details validation388var Masterfile2 = {389 validateMyWizard2: function(){390 if($('#select2_sample79').val() == ''){391 alert('You must provide County Name!');392 $('#select2_sample79').focus();393 return false;394 }else if($('#town').val() == ''){395 alert('You must provide Town/City for the selected County!');396 $('#town').focus();397 return false;398 }else if($('#phone').val() == ''){399 alert('You must provide Provide Phone Number!');400 $('#phone').focus();401 return false;402 }else if($('#box').val() == ''){403 alert('You must provide Box Number!');404 $('#box').focus();405 return false;406 }else if($('#postal_code').val() == ''){407 alert('You must provide Postal Code!');408 $('#postal_code').focus();409 return false;410 }else if($('#address_type_id').val() == ''){411 alert('You must provide Address Type!');412 $('#address_type_id').focus();413 return false;414 }else{415 return true;416 }417 }418}419
...
moduleProviderPlugIns.js
Source:moduleProviderPlugIns.js
...6 identifierLoadWasCalledWith = moduleIdentifier;7 originalModuleLoad(moduleIdentifier, onModuleLoaded);8 };9 module.declare([], function () {10 module.provide(["demos/math"], function () {11 strictEqual(identifierLoadWasCalledWith, "demos/math", "The overriden version of module.load was called with the same module identifier as was passed to the un-overriden module.provide.");12 module.constructor.prototype.load = originalModuleLoad;13 start();14 });15 });16});17test("Overriden provide: is called to provide the unmemoized dependencies when declaring the main module", function () {18 var idsOfModulesProvideIsCalledOn = [];19 var dependenciesProvideWasCalledWith = [];20 var originalModuleProvide = module.constructor.prototype.provide;21 module.constructor.prototype.provide = function (dependencies, onAllProvided) {22 idsOfModulesProvideIsCalledOn.push(this.id);23 dependenciesProvideWasCalledWith = dependenciesProvideWasCalledWith.concat(dependencies);24 onAllProvided();...
provide.controller.maintain.js
Source:provide.controller.maintain.js
1define(['apps/system3/production/production.controller',2 'apps/system3/production/specialty/specialty.service',3 'apps/system3/production/provide/provide.service'], function (app) {4 app.controller('production.controller.provide.maintain', function ($scope, maintainParams, $uibModalInstance) {5 $scope.windowProvide = maintainParams.provideInfo;6 if (maintainParams.task) {7 $scope.taskID = maintainParams.task.ID;8 }9 $scope.receiveUsers = [];10 $scope.volumeFiles = [];11 $scope.currentVolume = {};12 // æ°å»ºæèµ13 $scope.newProvide = function (provide) {14 $scope.readOnly = false;15 $scope.provideInfo = {16 Engineering: provide.Engineering,17 EngineeringID: provide.Engineering.ID,18 SendSpecialtyID: provide.Specialty.SpecialtyID,19 ReceiveUserIDs: "",20 DocName: "",21 DocContent: "",22 AttachIDs: [],23 VolumeFiles: []24 };25 $scope.flowData = {26 EngineeringID: provide.Engineering.ID,27 SpecialtyID: provide.Specialty.SpecialtyID28 };29 // æ°å¢å è½½ä¸ä¸çå·åæ件30 $scope.loadVolumeFiles();31 }32 // ç¼è¾æèµ33 $scope.maintainProvide = function (provide, task) {34 $scope.readOnly = !$scope.taskID;35 $scope.provideInfo = provide;36 if (!$scope.readOnly) {37 if (provide.ReceiveUserIDs.length > 0) {38 var str = ',' + provide.ReceiveUserIDs + ',';39 angular.forEach($rootScope.user_item, function (user) {40 if (str.indexOf(',' + user.ID + ',') >= 0) {41 $scope.receiveUsers.push({42 ID: user.ID,43 Name: user.Name,44 Dept: user.Dept,45 PhotoImg: user.PhotoImg46 });47 }48 });49 }50 // æ°å¢å è½½ä¸ä¸çå·åæ件51 $scope.loadVolumeFiles();52 }53 }54 // è·åå·åæ件55 $scope.loadVolumeFiles = function () {56 console.log(111)57 //$scope.providePanel.block();58 specialtyService.getFiles($scope.provideInfo.EngineeringID, $scope.provideInfo.SendSpecialtyID).then(function (data) {59 $scope.volumeFiles = data;60 $scope.currentVolume = data[0];61 //$scope.providePanel.unblock();62 });63 }64 // éæ©å·å65 $scope.volChanged = function (v) {66 $scope.currentVolume = v;67 }68 // å
¨éå·åæ件69 $scope.selectAll = function (vol) {70 angular.forEach(vol.Files, function (f) {71 f.selected = vol.selected;72 });73 }74 // è·åéä¸å·åæ件çæ°é75 $scope.getSelectedFileCount = function (files) {76 var count = 0;77 angular.forEach(files, function (f) {78 if (f.selected) {79 count++;80 }81 });82 return count;83 }84 // ä¿å85 $scope.save = function (flow) {86 $scope.providePanel.block();87 if ($scope.provideInfo.ID > 0) {88 // ç¼è¾89 provideService.update($scope.provideInfo).then(function () {90 flow.callBack(function () {91 $scope.providePanel.unblock();92 if ($scope.afterSave) {93 $scope.afterSave();94 } else {95 $scope.loadSource();96 }97 });98 });99 } else {100 // æ°å¢101 $scope.provideInfo.ApproveUser = flow.taskInfo.user;102 provideService.create($scope.provideInfo).then(function () {103 // éç¥é件é¢è§æ§ä»¶æ´æ°é件å表104 if ($scope.attachChangedCB) {105 $scope.attachChangedCB();106 }107 flow.callBack(function () {108 $scope.providePanel.unblock();109 if ($scope.afterSave) {110 $scope.afterSave();111 } else {112 $scope.loadSource();113 }114 });115 });116 }117 return true;118 }119 $scope.$watchCollection("receiveUsers", function (newval, oldval) {120 if (newval && $scope.provideInfo) {121 if (newval.length == 0) {122 $scope.provideInfo.ReceiveUserIDs = undefined;123 } else {124 var ids = [];125 angular.forEach(newval, function (user) {126 ids.push(user.ID);127 })128 $scope.provideInfo.ReceiveUserIDs = ids.join(',');129 }130 }131 });132 $scope.$watch("volumeFiles", function (newval, oldval) {133 if (newval && $scope.provideInfo) {134 $scope.provideInfo.VolumeFiles = [];135 angular.forEach(newval, function (vol) {136 angular.forEach(vol.Files, function (f) {137 if (f.selected) {138 $scope.provideInfo.VolumeFiles.push(f.ID);139 }140 });141 });142 }143 }, true);144 $scope.$watch("currentProvide", function (newval, oldval) {145 if (newval) {146 if (newval.ID > 0) {147 $scope.maintainProvide(newval);148 } else {149 $scope.newProvide(newval);150 }151 }152 });153 $scope.$on("newProvide", function (e, data) {154 $scope.newProvide(data);155 })156 // é件ä¸ä¼ å®æååè°157 $scope.attachUploaded = function (id, attachChangedCB) {158 // æ°å»ºç模å¼ä¸ï¼å
ä¿åä¸ä¼ çé件IDï¼å½ä¿¡æ¯è¢«ä¿ååï¼å¨ä¿å该é件ID159 $scope.provideInfo.AttachIDs.push(id);160 $scope.attachChangedCB = attachChangedCB;161 };162 // åæ´ä¿¡æ¯163 if ($scope.windowProvide) {164 if ($scope.windowProvide.ID > 0) {165 $scope.maintainProvide($scope.windowProvide)166 } else {167 $scope.newProvide($scope.windowProvide)168 }169 }170 171 172 // å
³éç¼è¾æ¨¡å¼173 $scope.closeModal = function () {174 $uibModalInstance.dismiss('cancel');175 }176 });...
recursiveProvision.js
Source:recursiveProvision.js
1newTestSet("Recursive provision");2asyncModuleTest("Can provide a module that specifies its dependency via a relative path", function (require, exports, module) {3 module.provide(["demos/area"], function onModulesProvided() {4 ok(true, "Callback called");5 var area = require("demos/area");6 strictEqual(area.rectangle(2, 3), 6, "Area of a rectangle successfully computed using two modules in collaboration (require, then use later)");7 strictEqual(area.square(3), 9, "Area of a square successfully computed using two modules in collaboration (require and pick a property immediately)");8 start();9 });10});11asyncModuleTest("Can provide two modules (at the same time) that both require the same module", function (require, exports, module) {12 module.provide(["demos/area", "demos/perimeter"], function onModulesProvided() {13 ok(true, "Callback called");14 var area = require("demos/area");15 var perimeter = require("demos/perimeter");16 strictEqual(area.rectangle(2, 3), 6, "Area of a rectangle successfully computed using two modules in collaboration (require, then use later)");17 strictEqual(area.square(3), 9, "Area of a square successfully computed using two modules in collaboration (require and pick a property immediately)");18 strictEqual(perimeter.rectangle(2, 3), 10, "Perimeter of a rectangle successfully computed using two modules in collaboration (require, then use later)");19 strictEqual(perimeter.square(3), 12, "Perimeter of a square successfully computed using two modules in collaboration (require and pick a property immediately)");20 start();21 });22});23asyncModuleTest("Can provide two modules (one after the other) that both require the same module", function (require, exports, module) {24 var numberOfProvidesSoFar = 0;25 module.provide(["demos/area"], function () {26 ok(true, "area provide callback called");27 var area = require("demos/area");28 strictEqual(area.rectangle(2, 3), 6, "Area of a rectangle successfully computed using two modules in collaboration (require, then use later)");29 strictEqual(area.square(3), 9, "Area of a square successfully computed using two modules in collaboration (require and pick a property immediately)");30 if (++numberOfProvidesSoFar === 2) {31 start();32 }33 });34 module.provide(["demos/perimeter"], function () {35 ok(true, "perimeter provide callback called");36 var perimeter = require("demos/perimeter");37 strictEqual(perimeter.rectangle(2, 3), 10, "Perimeter of a rectangle successfully computed using two modules in collaboration (require, then use later)");38 strictEqual(perimeter.square(3), 12, "Perimeter of a square successfully computed using two modules in collaboration (require and pick a property immediately)");39 if (++numberOfProvidesSoFar === 2) {40 start();41 }42 });43});44asyncModuleTest("Can provide the same module twice in a row, for the simple case of a module with no dependencies", function (require, exports, module) {45 var numberOfProvidesSoFar = 0;46 function assertMathExports(math) {47 strictEqual(typeof math, "object", "math module has been exported.");48 strictEqual(typeof math.add, "function", "math's add function has been exported");49 strictEqual(typeof math.multiply, "function", "math's multiply function has been exported");50 }51 module.provide(["demos/math"], function () {52 ++numberOfProvidesSoFar;53 ok(true, "first math provide callback called");54 assertMathExports(require("demos/math"));55 if (numberOfProvidesSoFar === 2) {56 start();57 }58 });59 module.provide(["demos/math"], function () {60 ++numberOfProvidesSoFar;61 ok(true, "second math provide callback called");62 assertMathExports(require("demos/math"));63 if (numberOfProvidesSoFar === 2) {64 start();65 }66 });67});68asyncModuleTest("Can provide the same module twice in a row, for the case of a module with dependencies", function (require, exports, module) {69 var numberOfProvidesSoFar = 0;70 function assertAreaExports(area) {71 strictEqual(typeof area, "object", "Area modules has been exported");72 strictEqual(typeof area.rectangle, "function", "Area's add function has been exported");73 strictEqual(typeof area.square, "function", "Area's square function has been exported");74 }75 module.provide(["demos/area"], function () {76 ++numberOfProvidesSoFar;77 ok(true, "first area provide callback called");78 assertAreaExports(require("demos/area"));79 if (numberOfProvidesSoFar === 2) {80 start();81 }82 });83 module.provide(["demos/area"], function () {84 ++numberOfProvidesSoFar;85 ok(true, "second area provide callback called");86 assertAreaExports(require("demos/area"));87 if (numberOfProvidesSoFar === 2) {88 start();89 }90 });91});92asyncTest("If the main module depends on a memoized module that depends on un-memoized modules, the un-memoized modules are provided", function () {93 require.memoize("memoized", ["demos/math"], function (require, exports, module) {94 var math = require("demos/math");95 exports.increment = function (x) {96 return math.add(x, 1);97 };98 });99 module.declare(["memoized"], function (require, exports, module) {100 ok(true, "Main module factory function was called");101 strictEqual(require.isMemoized("demos/math"), true, "The math module is now memoized, even though we didn't do so explicitly");102 var memoized = require("memoized");103 var five = memoized.increment(4);104 strictEqual(five, 5, "The explicitly-memoized module correctly used the unmemoized module to increment 4 and return 5");105 start();106 });107});108asyncModuleTest("Providing a memoized module that depends on un-memoized modules results in the un-memoized modules being provided", function (require, exports, module) {109 require.memoize("memoized", ["demos/math"], function (require, exports, module) {110 var math = require("demos/math");111 exports.increment = function (x) {112 return math.add(x, 1);113 };114 });115 module.provide(["memoized"], function () {116 ok(true, "Provide callback was called");117 strictEqual(require.isMemoized("demos/math"), true, "The math module is now memoized, even though we didn't do so explicitly");118 var memoized = require("memoized");119 var five = memoized.increment(4);120 strictEqual(five, 5, "The explicitly-memoized module correctly used the unmemoized module to increment 4 and return 5");121 start();122 });123});124asyncModuleTest("Providing a diamond configuration does not provide a module twice", function (require, exports, module) {125 // Use the plug-in system to record calls to provide126 var dependenciesProvideWasCalledWith = [];127 var originalModuleProvide = module.constructor.prototype.provide;128 var delay = 50;129 module.constructor.prototype.provide = function (dependencies, onAllProvided) {130 dependenciesProvideWasCalledWith = dependenciesProvideWasCalledWith.concat(dependencies);131 originalModuleProvide.call(this, dependencies, function () {132 setTimeout(onAllProvided, delay);133 delay += 50;134 });135 };136 function endsWith(string, substring) {137 return string.indexOf(substring, string.length - substring.length) !== -1;138 }139 module.provide(["demos/diamond/top"], function () {140 var bottomInstances = dependenciesProvideWasCalledWith.filter(function (dependency) { return endsWith(dependency, "bottom"); });141 strictEqual(bottomInstances.length, 1, "The bottom module in the diamond was only provided once");142 module.constructor.prototype.provide = originalModuleProvide;143 start();144 });...
moduleNamespace.js
Source:moduleNamespace.js
...9 start();10 });11});12asyncModuleTest("declare: infers dependencies if only a factory function is given", function () {13 module.provide(["demos/squares"], function () {14 var squares = require("demos/squares");15 strictEqual(squares.area(3), 9, "demos/area dependency was inferred and works");16 strictEqual(squares.perimeter(3), 12, "demos/perimeter dependency was inferred and works");17 strictEqual(require.isMemoized(require.id("demos/diamond/bottom")), false, "Commented-out demos/diamond/bottom dependency was not memoized");18 start();19 });20});21asyncTest("declare: dependency inference does not infer the same dependency twice", function () {22 var dependenciesProvideWasCalledWith = [];23 var originalModuleProvide = module.constructor.prototype.provide;24 module.constructor.prototype.provide = function (dependencies, onAllProvided) {25 dependenciesProvideWasCalledWith = dependenciesProvideWasCalledWith.concat(dependencies);26 originalModuleProvide.call(this, dependencies, onAllProvided);27 };28 module.declare(["demos/circles"], function () {29 deepEqual(dependenciesProvideWasCalledWith, ["demos/circles", "demos/math"], "module.provide was called only once for the demos/math dependency");30 module.constructor.prototype.provide = originalModuleProvide;31 start();32 });33});34asyncModuleTest("load: when called twice in a row for the same module, both callbacks fire", function (require, exports, module) {35 var numberOfLoadsSoFar = 0;36 module.load("demos/math", function onLoad1() {37 ok(true, "First callback");38 ++numberOfLoadsSoFar;39 if (numberOfLoadsSoFar === 2) {40 start();41 }42 });43 module.load("demos/math", function onLoad2() {44 ok(true, "Second callback");45 ++numberOfLoadsSoFar;46 if (numberOfLoadsSoFar === 2) {47 start();48 }49 });50});51asyncModuleTest("load: when called twice in a row for the same nonextant module, both callbacks fire", function (require, exports, module) {52 var numberOfLoadsSoFar = 0;53 module.load("asdf", function onLoad1() {54 ok(true, "First callback");55 ++numberOfLoadsSoFar;56 if (numberOfLoadsSoFar === 2) {57 start();58 }59 });60 module.load("asdf", function onLoad2() {61 ok(true, "Second callback");62 ++numberOfLoadsSoFar;63 if (numberOfLoadsSoFar === 2) {64 start();65 }66 });67});68asyncModuleTest("load: does not memoize the loaded module", function (require, exports, module) {69 module.load("demos/math", function onModuleLoaded() {70 strictEqual(require.isMemoized("demos/math"), false, "The module was not memoized");71 start();72 });73});74asyncModuleTest("provide: passing an empty dependency array still results in the callback being called", function (require, exports, module) {75 module.provide([], function onModulesProvided() {76 ok(true, "Callback was called");77 start();78 });79});80asyncModuleTest("provide: when passing multiple dependencies, all of them are memoized by the time the callback is called", function (require, exports, module) {81 module.provide(["demos/area", "demos/perimeter"], function onModulesProvided() {82 strictEqual(require.isMemoized("demos/area"), true, "First dependency is memoized");83 strictEqual(require.isMemoized("demos/perimeter"), true, "Second dependency is memoized");84 start();85 });86});87asyncModuleTest("provide: understands relative identifiers", function (require, exports, module) {88 module.provide(["demos/../demos/math"], function onModulesProvided() {89 strictEqual(require.isMemoized("demos/math"), true, "It figured out demos/../demos");90 start();91 });92});93asyncModuleTest("provide: still calls the callback even if one of the modules in the dependencies array doesn't exist", function (require, exports, module) {94 module.provide(["asdf", "demos/math"], function onModulesProvided() {95 ok(true, "Callback still got called");96 strictEqual(require.isMemoized("demos/math"), true, "The extant module is memoized");97 strictEqual(require.isMemoized("asdf"), false, "The nonextant module is not memoized");98 start();99 });100});101asyncModuleTest("provide: two calls in a row for a nonextant module still results in both callbacks being called", function (require, exports, module) {102 var numberOfLoadsSoFar = 0;103 module.provide(["asdf"], function onProvided1() {104 ok(true, "First callback");105 ++numberOfLoadsSoFar;106 if (numberOfLoadsSoFar === 2) {107 start();108 }109 });110 module.provide(["asdf"], function onProvided2() {111 ok(true, "Second callback");112 ++numberOfLoadsSoFar;113 if (numberOfLoadsSoFar === 2) {114 start();115 }116 });117});118asyncModuleTest("provide: providing an extant module then a nonextant module does not mistakenly memoize the nonextant module using leftovers from the extant one", function (require, exports, module) {119 module.provide(["demos/math"], function () {120 ok(true, "Callback for extant module reached");121 module.provide(["asdf"], function () {122 ok(true, "Callback for nonextant module reached");123 strictEqual(require.isMemoized("demos/math"), true, "The extant module is memoized");124 strictEqual(require.isMemoized("asdf"), false, "The nonextant module is not memoized");125 start();126 });127 });128});129// See http://groups.google.com/group/commonjs/browse_thread/thread/50d4565bd07e03cb130asyncModuleTest("provide: does not modify module.dependencies", function (require, exports, module) {131 module.provide(["demos/math"], function onModulesProvided() {132 deepEqual(module.dependencies, [], "The dependencies array is still empty.");133 start();134 });135});136// See http://groups.google.com/group/commonjs/browse_thread/thread/50d4565bd07e03cb137asyncModuleTest("provide: does not make labels available to require", function (require, exports, module) {138 module.provide([{ math: "demos/math" }], function onModulesProvided() {139 raises(function () {140 require("math");141 }, "Trying to require using the label throws an error");142 start();143 });144});145asyncModuleTest("eventually: causes the function to be called within a second", function (require, exports, module) {146 var wasCalled = false;147 var gaveUpAlready = false;148 function callMeEventually() {149 if (!gaveUpAlready) {150 wasCalled = true;151 ok(true, "The function was called, eventually");152 start();...
circularDependencies.js
Source:circularDependencies.js
1newTestSet("Circular dependencies");2asyncModuleTest("Can provide a module that depends on a module that depends on the original module", function (require, exports, module) {3 module.provide(["demos/circular/circularA"], function onModulesProvided() {4 ok(true, "module.provide callback called");5 var circularA = require("demos/circular/circularA");6 strictEqual(typeof circularA, "object", "circularA module has been exported");7 strictEqual(typeof circularA.getValue, "function", "circularA's getValue function has been exported");8 strictEqual(typeof circularA.getValueFromB, "function", "circularA's getValueFromB function has been exported");9 strictEqual(circularA.getValueFromB(), "b", "circularA's getValueFromB function returns the correct value");10 start();11 });12});13asyncModuleTest("Can provide two mutually-dependent modules in the same module.provide call", function (require, exports, module) {14 module.provide(["demos/circular/circularA", "demos/circular/circularB"], function onModulesProvided() {15 ok(true, "module.provide callback called");16 var circularA = require("demos/circular/circularA");17 strictEqual(typeof circularA, "object", "circularA module has been exported");18 strictEqual(typeof circularA.getValue, "function", "circularA's getValue function has been exported");19 strictEqual(typeof circularA.getValueFromB, "function", "circularA's getValueFromB function has been exported");20 strictEqual(circularA.getValueFromB(), "b", "circularA's getValueFromB function returns the correct value");21 var circularB = require("demos/circular/circularB");22 strictEqual(typeof circularB, "object", "circularB module has been exported");23 strictEqual(typeof circularB.getValue, "function", "circularB's getValue function has been exported");24 strictEqual(typeof circularB.getValueFromA, "function", "circularB's getValueFromA function has been exported");25 strictEqual(circularB.getValueFromA(), "a", "circularB's getValueFromA function returns the correct value");26 start();27 });28});29asyncModuleTest("Can provide the modules in a two-module circle in parallel, via two module.provide calls", function (require, exports, module) {30 var callbacksCalled = 0;31 var desiredCallbacksCalled = 2;32 function onCallback() {33 if (++callbacksCalled === desiredCallbacksCalled) {34 start();35 }36 }37 module.provide(["demos/circular/circularA"], function onAProvided() {38 ok(true, "module.provide callback called for circularA");39 var circularA = require("demos/circular/circularA");40 strictEqual(typeof circularA, "object", "circularA module has been exported");41 strictEqual(typeof circularA.getValue, "function", "circularA's getValue function has been exported");42 strictEqual(typeof circularA.getValueFromB, "function", "circularA's getValueFromB function has been exported");43 strictEqual(circularA.getValueFromB(), "b", "circularA's getValueFromB function returns the correct value");44 onCallback();45 });46 module.provide(["demos/circular/circularB"], function onBProvided() {47 ok(true, "module.provide callback called for circularB");48 var circularB = require("demos/circular/circularB");49 strictEqual(typeof circularB, "object", "circularB module has been exported");50 strictEqual(typeof circularB.getValue, "function", "circularB's getValue function has been exported");51 strictEqual(typeof circularB.getValueFromA, "function", "circularB's getValueFromA function has been exported");52 strictEqual(circularB.getValueFromA(), "a", "circularB's getValueFromA function returns the correct value");53 onCallback();54 });55});56asyncModuleTest("Can provide a module that depends on a module that depends on the original module, while also depending on a nonextant module", function (require, exports, module) {57 module.provide(["demos/circular/circularAndNonextantA"], function onModulesProvided() {58 ok(true, "module.provide callback called");59 require("demos/circular/circularAndNonextantA");60 ok(true, "module was initialized");61 start();62 });63});64asyncModuleTest("Can provide a module in a three-module dependency circle", function (require, exports, module) {65 module.provide(["demos/circular/circular1"], function onModulesProvided() {66 ok(true, "module.provide callback called");67 var circular1 = require("demos/circular/circular1");68 strictEqual(typeof circular1, "object", "circular1 module has been exported");69 strictEqual(typeof circular1.getValue, "function", "circular1's getValue function has been exported");70 strictEqual(typeof circular1.getValueFrom2, "function", "circular1's getValueFrom2 function has been exported");71 strictEqual(circular1.getValueFrom2(), "2", "circular1's getValueFrom2 function returns the correct value");72 start();73 });74});75asyncModuleTest("Can provide all three modules in a three-module dependency circle in the same module.provide call", function (require, exports, module) {76 module.provide(["demos/circular/circular1", "demos/circular/circular3", "demos/circular/circular2"], function onModulesProvided() {77 ok(true, "module.provide callback called");78 require("demos/circular/circular1");79 ok(true, "circular1 module initialized");80 require("demos/circular/circular2");81 ok(true, "circular2 module initialized");82 require("demos/circular/circular3");83 ok(true, "circular3 module initialized");84 start();85 });86});87asyncModuleTest("Can provide the modules in a three-module dependency circle in parallel, via three module.provide calls", function (require, exports, module) {88 var callbacksCalled = 0;89 var desiredCallbacksCalled = 3;90 function onCallback() {91 if (++callbacksCalled === desiredCallbacksCalled) {92 start();93 }94 }95 module.provide(["demos/circular/circular1"], function on1Provided() {96 ok(true, "module.provide callback called for circular1");97 require("demos/circular/circular1");98 ok(true, "circular1 module initialized");99 onCallback();100 });101 module.provide(["demos/circular/circular2"], function on1Provided() {102 ok(true, "module.provide callback called for circular2");103 require("demos/circular/circular2");104 ok(true, "circular2 module initialized");105 onCallback();106 });107 module.provide(["demos/circular/circular3"], function on1Provided() {108 ok(true, "module.provide callback called for circular3");109 require("demos/circular/circular3");110 ok(true, "circular3 module initialized");111 onCallback();112 });...
inject.js
Source:inject.js
1/* @flow */2import { hasOwn } from 'shared/util'3import { warn, hasSymbol } from '../util/index'4import { defineReactive, toggleObserving } from '../observer/index'5export function initProvide (vm: Component) {6 const provide = vm.$options.provide7 if (provide) {8 vm._provided = typeof provide === 'function'9 ? provide.call(vm)10 : provide11 }12}13export function initInjections (vm: Component) {14 const result = resolveInject(vm.$options.inject, vm)15 if (result) {16 toggleObserving(false)17 Object.keys(result).forEach(key => {18 /* istanbul ignore else */19 if (process.env.NODE_ENV !== 'production') {20 defineReactive(vm, key, result[key], () => {21 warn(22 `Avoid mutating an injected value directly since the changes will be ` +23 `overwritten whenever the provided component re-renders. ` +24 `injection being mutated: "${key}"`,25 vm26 )27 })28 } else {29 defineReactive(vm, key, result[key])30 }31 })32 toggleObserving(true)33 }34}35export function resolveInject (inject: any, vm: Component): ?Object {36 if (inject) {37 // inject is :any because flow is not smart enough to figure out cached38 const result = Object.create(null)39 const keys = hasSymbol40 ? Reflect.ownKeys(inject)41 : Object.keys(inject)42 for (let i = 0; i < keys.length; i++) {43 const key = keys[i]44 // #6574 in case the inject object is observed...45 if (key === '__ob__') continue46 const provideKey = inject[key].from47 let source = vm48 while (source) {49 if (source._provided && hasOwn(source._provided, provideKey)) {50 result[key] = source._provided[provideKey]51 break52 }53 source = source.$parent54 }55 if (!source) {56 if ('default' in inject[key]) {57 const provideDefault = inject[key].default58 result[key] = typeof provideDefault === 'function'59 ? provideDefault.call(vm)60 : provideDefault61 } else if (process.env.NODE_ENV !== 'production') {62 warn(`Injection "${key}" not found`, vm)63 }64 }65 }66 return result67 }...
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('basic test', async ({ page }) => {3 const title = page.locator('.navbar__inner .navbar__title');4 await expect(title).toHaveText('Playwright');5});6const { test, expect } = require('@playwright/test');7test('basic test', async ({ page }) => {8 const title = page.locator('.navbar__inner .navbar__title');9 await expect(title).toHaveText('Playwright');10});11const { test, expect } = require('@playwright/test');12test('basic test', async ({ page }) => {13 const title = page.locator('.navbar__inner .navbar__title');14 await expect(title).toHaveText('Playwright');15});16const { test, expect } = require('@playwright/test');17test('basic test', async ({ page }) => {18 const title = page.locator('.navbar__inner .navbar__title');19 await expect(title).toHaveText('Playwright');20});21const { test, expect } = require('@playwright/test');22test('basic test', async ({ page }) => {23 const title = page.locator('.navbar__inner .navbar__title');24 await expect(title).toHaveText('Playwright');25});26const { test, expect } = require('@playwright/test');27test('basic test', async ({ page }) => {28 const title = page.locator('.navbar__inner .navbar__title');29 await expect(title).toHaveText('Playwright');30});31const { test, expect } = require('@playwright/test');32test('basic test', async ({ page }) => {
Using AI Code Generation
1const { Playwright } = require('playwright');2const playwright = new Playwright();3const browser = await playwright.chromium.launch();4const context = await browser.newContext();5const page = await context.newPage();6await page.provide({7});8const { Playwright } = require('playwright');9const playwright = new Playwright();10const browser = await playwright.chromium.launch();11const context = await browser.newContext();12await context.grantPermissions(['geolocation']);13const { Playwright } = require('playwright');14const playwright = new Playwright();15const browser = await playwright.chromium.launch();16const context = await browser.newContext();17await context.clearPermissions();18const { Playwright } = require('playwright');19const playwright = new Playwright();20const browser = await playwright.chromium.launch();21const context = await browser.newContext();22await context.setGeolocation({ longitude: 12.492507, latitude: 41.889938 });23const { Playwright } = require('playwright');24const playwright = new Playwright();25const browser = await playwright.chromium.launch();26const context = await browser.newContext();27await context.setOffline(true);28const { Playwright } = require('playwright');29const playwright = new Playwright();30const browser = await playwright.chromium.launch();
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('test', async ({ page }) => {3 const title = await page.title();4 expect(title).toBe('Playwright');5});6const { test, expect } = require('@playwright/test');7test('test', async ({ page }) => {8 const title = await page.title();9 expect(title).toBe('Playwright');10});11const { test, expect } = require('@playwright/test');12test('test', async ({ page }) => {13 const title = await page.title();14 expect(title).toBe('Playwright');15});16const { test, expect } = require('@playwright/test');17test('test', async ({ page }) => {18 const title = await page.title();19 expect(title).toBe('Playwright');20});21const { test, expect } = require('@playwright/test');22test('test', async ({ page }) => {
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('Playwright Internal API test', async ({ page }) => {3 await page.waitForSelector('text=Get started');4 await page.provide('test', 'test');5 const value = await page.evaluate(() => localStorage.getItem('test'));6 expect(value).toBe('test');7});8### page.provide(key, value)9### page.provideSessionStorage(key, value)10### page.provideSecureStorage(key, value)11### page.provideWebStorage(key, value)12### page.provideCookies(cookies)13### page.providePermissions(permissions)14### page.provideGeolocation(geolocation)15### page.provideDeviceScaleFactor(deviceScaleFactor)16### page.provideUserAgent(userAgent)17### page.provideViewportSize(viewportSize)18### page.provideTouchscreen(enabled)19### page.provideMedia(media)20### page.provideOffline(offline)21### page.provideHTTPCredentials(httpCredentials)22### page.provideLocale(locale)23### page.provideTimezoneId(timezoneId)24### page.provideExtraHTTPHeaders(extraHTTPHeaders)25### page.provideColorScheme(colorScheme)26### page.provideAcceptDownloads(acceptDownloads)27### page.provideRecordHar(recordHar)
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('should be able to open the browser', async ({ page }) => {3 const title = page.locator('text=Playwright');4 await expect(title).toBeVisible();5});6const { test, expect } = require('@playwright/test');7test('should be able to open the browser', async ({ page }) => {8 const title = page.locator('text=Playwright');9 await expect(title).toBeVisible();10});
Using AI Code Generation
1const { test, expect } = require('@playwright/test');2test('should navigate to the page', async ({ page }) => {3 expect(await page.title()).toBe('Playwright');4});5const { test, expect } = require('@playwright/test');6test('should navigate to the page', async ({ page }) => {7 expect(await page.title()).toBe('Playwright');8});
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.addInitScript(() => {6 window.foo = 'bar';7 });8 const foo = await page.evaluate(() => window.foo);9 await browser.close();10})();11const { chromium } = require('playwright');12(async () => {13 const browser = await chromium.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 await browser.close();17})();18const { chromium } = require('playwright');19(async () => {20 const browser = await chromium.launch();21 const page = await browser.newPage();22 await browser.close();23})();24const { chromium } = require('playwright');25(async () => {26 const browser = await chromium.launch();27 const page = await browser.newPage();28 const searchWikipediaText = await page.$eval('#search-form > fieldset > legend', el => el.textContent);
Using AI Code Generation
1const { internal } = require('playwright');2const { Android, Ios } = internal;3const android = new Android();4const ios = new Ios();5const context = await android.launchApp('com.android.chrome');6const page = await context.newPage();7await ios.provide({8 'com.android.chrome': {9 },10});
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!