index.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import { shallowMount, createLocalVue } from '@vue/test-utils'
  2. import VueRouter from 'vue-router'
  3. import BaseSelect from '@tests/stubs/BaseSelect'
  4. import Icon from '@tests/stubs/Icon'
  5. import ServerPassword from '../index'
  6. import { LOGIN_TYPES_MAP } from '@Compute/constants'
  7. const localVue = createLocalVue()
  8. localVue.use(VueRouter)
  9. localVue.directive('decorator', {})
  10. const router = new VueRouter()
  11. let decorator = null
  12. let form = null
  13. beforeEach(() => {
  14. decorator = {
  15. loginType: ['loginType', { initialValue: 'random' }],
  16. keypair: [
  17. 'loginKeypair',
  18. {
  19. initialValue: 'abc',
  20. },
  21. ],
  22. password: [
  23. 'loginPassword',
  24. ],
  25. }
  26. form = {
  27. fc: {
  28. setFieldsValue: jest.fn(),
  29. },
  30. }
  31. })
  32. describe('ServerPassword loginTypeMap', () => {
  33. it('check all loginTypeMap', () => {
  34. const loginTypes = ['random', 'keypair', 'image', 'password']
  35. const wrapper = shallowMount(ServerPassword, {
  36. propsData: {
  37. decorator,
  38. loginTypes,
  39. form,
  40. },
  41. })
  42. expect(wrapper.vm.loginTypeMap).toEqual(LOGIN_TYPES_MAP)
  43. expect(wrapper.vm.form.fc.setFieldsValue.mock.calls[0][0]).toEqual({ loginType: LOGIN_TYPES_MAP.random.key })
  44. expect(wrapper.vm.$el).toMatchSnapshot()
  45. })
  46. it('check loginTypeMap initValue is image', () => {
  47. const loginTypes = ['keypair', 'image']
  48. const wrapper = shallowMount(ServerPassword, {
  49. propsData: {
  50. decorator,
  51. loginTypes,
  52. form,
  53. },
  54. })
  55. expect(wrapper.vm.loginTypeMap).toEqual({
  56. keypair: LOGIN_TYPES_MAP.keypair,
  57. image: LOGIN_TYPES_MAP.image,
  58. })
  59. expect(wrapper.vm.form.fc.setFieldsValue.mock.calls[0][0]).toEqual({ loginType: LOGIN_TYPES_MAP.image.key })
  60. expect(wrapper.vm.$el).toMatchSnapshot()
  61. })
  62. // 暂时无法解决 BaseSelect value is required
  63. it('check loginTypeMap initValue is the first of loginTypes', () => {
  64. const loginTypes = ['keypair', 'password']
  65. const wrapper = shallowMount(ServerPassword, {
  66. propsData: {
  67. decorator,
  68. loginTypes,
  69. form,
  70. },
  71. stubs: {
  72. 'base-select': BaseSelect,
  73. icon: Icon,
  74. },
  75. localVue,
  76. router,
  77. })
  78. expect(wrapper.vm.loginTypeMap).toEqual({
  79. keypair: LOGIN_TYPES_MAP.keypair,
  80. password: LOGIN_TYPES_MAP.password,
  81. })
  82. expect(wrapper.vm.form.fc.setFieldsValue.mock.calls[0][0]).toEqual({ loginType: LOGIN_TYPES_MAP.keypair.key })
  83. expect(wrapper.vm.$el).toMatchSnapshot()
  84. })
  85. })